- ベストアンサー
ファイルに行番号を追加
C言語の演習課題で困っておりまして、 質問させていただきます。 ファイル名をコンソールから指定し内容を1行ずつ読み込んだ後 行番号をつけて別のファイルに書き込むという問題なのですが 最初から壁にぶち当たっている状態です…。 どなたかご教授よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#include <stdio.h> #include <stdlib.h> int main(void){ char file0[64]; char file1[64]; unsigned short i; char buff[256]; FILE *fp0; FILE *fp1; printf("\n\n"); printf("input file_name : "); scanf("%s", file0); printf("\n"); printf("output file_name : "); scanf("%s", file1); printf("\n"); printf("input:%s\n",file0); printf("output :%s\n",file1); if(NULL==(fp0=fopen(file0,"r"))){ printf("\7\n ng : %s\n",file0); exit(1); } if(NULL==(fp1=fopen(file1,"w"))){ printf("\7\n ng : %s\n",file1); exit(1); } for(i=0;i<1000;++i){ if(NULL==fgets(buff,255,fp0)){ break; } fprintf(fp1,"%5d: %s",i+1,buff); } fclose(fp0); fclose(fp1); }
その他の回答 (5)
- topper77
- ベストアンサー率15% (3/19)
う~ん。。。詳しいほうじゃないんで、環境とかによって 変わってくると思いますが、僕の知ってるのんは、 %cat -n ファイル名|lpr って、実行とかするところでうったら、プログラムに 行番号を付けて印刷できるんですよ。 これを利用して、 %cat -n ファイル名 > 新しいファイル名 みたいな感じなことやったら、いけるかも? かなりアバウトなこと言うてすみません。。。 とりあえず、僕が言えることは、こうこうこうゆう 環境でCプログラム作ってます!ってのを質問に入れた 方がいいと思います!!
補足
回答ありがとうございます! GOOでの質問も初めてでして、、、色々いたらない部分 で皆さんを困惑させてしまったようです。 ご忠告肝に銘じます。
- suezou3
- ベストアンサー率12% (18/139)
プログラムの経験はどの位? strcat じゃなく sprintf を使った方が楽か。 sprintf 格納バッファ "%04d:%s" 行番号 読み込んだ行 こんな感じ(^o^)
補足
お返事ありがとうございます。 すいません、プログラム経験はまだ2週間なのです。 Cに至ってはポインタすら習っておりません… 具体的にどういった関数をどういった表現で記述する のか?という知識が絶対的に不足しております故
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 行番号を付加する方法に手間取っておりまして、、、 int lineNumber = 0; char line[256]; // ここに読み込む FILE* ifp = ... // 読み込むファイル FILE* ofp = ... // 書き込むファイル while ( ifpから一行分lineに読み込む ) { fprintf( ofp, "%04d: %s", ++lineNumber, line); }
お礼
回答ありがとうございます! なにぶん、ファイル操作を勉強し始めたのが 昨日という段階でして… 何はともあれ感謝致します!
- suezou3
- ベストアンサー率12% (18/139)
fopen,fclose,fgets,fputs,strcat このあたりの関数を使えば出来るでしょ。
補足
回答ありがとうございます。 下でも書きましたが、 行番号を付加する方法がわからない状態なんです。 そういった関数をどのように使うのか?という疑問点が 最大の難関になっておりまして、、
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
何がわからないのかを明記してください。 - ファイル名を得る方法ですか? - ファイルをオープンする方法ですか? - ファイルから読み込む方法ですか? - 行番号を付加する方法ですか? - ファイルに書き込む方法ですか? - ファイルを閉じる方法ですか? - コンパイルの方法ですか? - 実行の方法ですか?
補足
非常にあいまいな質問でしたね…。 ご指摘ありがとうございます。 行番号を付加する方法に手間取っておりまして、、、 よろしければ回答のほどお願いします
お礼
回答ありがとうございます! 自分でも色々勉強しましたが、なるほど~こうやってやるんですね! 非常に良い参考になりました! ありがとうございました!