ysawaveのプロフィール

@ysawave ysawave
ありがとう数3
質問数0
回答数5
ベストアンサー数
2
ベストアンサー率
50%
お礼率
0%

  • 登録日2011/05/03
  • 【C言語】テキストファイル内のデータを一行削除

    いつもお世話になっております。 ファイル操作についてご教授ください。 sample.txtに下記のデータが格納されています。 【sample.txt】 ------------------- りんご 100円 バナナ 120円 苺 150円 ------------------- この状態で、scanfで「バナナ」と入力し、 sample.txtからバナナの行を削除し、 行を詰めるようにしたいのですが、 どのようにしたらいいのでしょうか。 【流れ】 "文字を入力してください"のメッセージ。   ↓ 「バナナ」と入力。   ↓ ------------------- りんご 100円 苺 150円 ------------------- 上記のように、scanfで入力した「バナナ」の行が削除され、 行が詰められている上状態にしたいです。 超が付くほどの初心者なので、 ソースも書いていただけると幸いです。 どうぞ宜しくお願い致します。

  • awkで項目番号ごとに行を列に並べる

    [入力ファイル] a  10   1 b  10   2 c  10   3 d  10   4 a  20   5 b  20   6 c  20   7 d  20   8 a  30   9 b  30   0 c  30   1 d  30   2 を、2列目の項目番号を行、1列目の記号を列として (エクセルのピボットテーブルのようなイメージです) 以下のように並べ替えたいのです。 [出力ファイル] No.  a  b  c  d 10  1  2  3  4 20  5  6  7  8 30  9  0  1  2 これをawkスクリプトで書きたいのですが、 どのように書けばよいでしょうか? ※下記2点は希望ですが、難しければ非対応でも大丈夫です。  ・入力ファイルの1行目は一応abcdの順番にきれいに並んでいるものですが   順番がabdcなどとずれていても処理できるスクリプトにしたいです。  ・出力後のabcdの列順序は、スクリプトを修正することで   自由に変更できるとさらに助かります。 教えてください。 よろしくお願いいたします。

  • c言語のプログラミングでこまってます

    /* プログラム作成に当たっては以下の注意を守ること。 •入力は整数変数に格納し、有効な日付かどうかチェックせよ。 •日付チェックでは、月の最終日が月によって違うことも考慮にいれること。 •日付チェックにおけるif文を減らすため、daynum[]を必ず使うこと。 •日付チェック以外でも、if文やswitch-case文の数はなるべく少なくするよう工夫せよ。今回は、if文の7行並列も、12行並列も禁止。 •日付の範囲チェックと計算とを同時に実行してもよい。 2個の整数を入力し、それぞれを2011年度の月、日とみなして、 その日付からおよその月齢と月相を計算して表示するプログラムを作成せよ。 月齢と月相の対応は簡便的に3.75齢毎に相が進むとしてよい。 suuumは月齢であるが、計算は以下のもので間違いない。 また、以下の配列を定義して使うこと。 char moonphasename[][15]= {"new moon", "new crescent", "first quarter", "waxing gibbous", "full moon", "waning gibbous", "last quarter", "old crescent"}; */ #include <stdio.h> int main(void) { int daynum[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int i=0,j=0; /*15はもじすう+1*/ char moonphasename[][15]= {"new moon", "new crescent", "first quarter","waxing gibbous", "full moon", "waning gibbous", "last quarter", "old crescent"}; int month,day,sum,suum,suuum; printf("月と日付を入力してね:"); scanf("%d%d", &month, &day); if(day>daynum[month]){ printf("2011年にそんな日はありません"); return(-1); } sum=(2011-1740)*210; suum=((sum/19)-2)+month+day; if(month==1) suuum=suum+1; else if(month==2) suuum=suum+2; else if(month==3 ||month==5) suuum=suum-1; else suuum=suum; printf("月齢は%d",suuum%30); for(i=0; i<=suuum &&suuum<i+3.75 ; i=i+3.75){ printf("月相は",moonphasename[j][15]); j++ ; } return (0); } と書いてリナックスのeclipsで実行させました。月齢はでるのですが、月相が表示されません(月相は という文字も非表示)。 どうしたらいいでしょうか? また、最後のfor文ではsuuumが0から3.75のときしか反応しません(見ての通り)。どう書き直せばいいでしょうか? 詳しいかたおねがいします。

  • 基本的なDOSコマンドがわかりません

    新潮文庫の絶版100冊エキスパンドブックをテキストに落とすフリーソフトをダウンロードしました。 Readmeファイルで以下の操作説明がありますが、コマンドラインをどう打てば良いのか、わかりません。 DOS プロンプトを開いたところから教えていただきたいのですが…。 また、このreadmeではファイルは隠しフォルダにあり、ファイル拡張子はTXTである、とありますが、実際はdbk(エキスバンドプックファイル)となっています。でもノートパッドで開くとコードの後にテキストが現れるので、このファイルをEXB2T.COMと同じディレクトリに置けば良いと思うのですが、この理解、あっていますでしょうか…。その場合拡張子はdbkを使わないとダメですよね。 >>指定したファイルをテキストに変換して、画面に出力します。お好みの ビューアへパイプするなり、リダイレクトでファイルへ落とすなりできます。  たとえば10010101.TXT(雪国)のテキストを雪国.TXTというファイルに落としたい 場合は、EXB2T.COMと10010101.TXTを同じディレクトリに置いて、  EXB2T 10010101.TXT > 雪国.TXT と実行して下さい。>>

  • csvファイルを整理し、データを生成するプログラム

    cドライブの中にcsvファイルが点在しています(ファイル名は数字にしてあります。123.csv、456.csv、789.csvなど。)。 各csvファイルには 2日,晴れ 3日,雨 4日,曇り という単純なデータが記録されています。 そこで、cドライブからcsvファイルだけをピックアップし、どのcsvファイルにどんな内容が記録されているかを一覧できるプログラムを探しています。 各ファイル名と内容が一覧表示されると大変分かりやすいです。例えば、 123 1日,晴れ 2日,雨 3日,曇り 456 4日,晴れ 5日,雨 6日,曇り 789 7日,晴れ 8日,雨 9日,曇り 上記のような一覧表示ができると大変良いです。 これを実現できるような方法はございませんでしょうか? 何卒よろしくお願いいたします。