###前提・実現したいこと
C言語でテキストファイルを読み、入力された行数毎のデータを表示するコードを書こうとしています。
例えば以下の「Hello.dat」というテキストファイルを読み、以下のように2行と指定して実行すると、テキストファイルから2行毎にデータを読み、2行目、4行目、6行目が表示されることを実現したいです。
txt
1//Hello.dat 2Hello world 3Hello C 4Hello world 5Hello C 6Hello world 7Hello C
./example Hello.dat 2 Hello C Hello C Hello C
###該当のソースコード
現状でできていることは、C言語でテキストファイルを読み、入力された行数のテキストを表示することです。このコードをどのように改変していけば、入力された行数毎のデータを全て表示することができるか悩んでおり、アドバイスをいただけますと幸いです。
C
1#include <stdio.h> 2#include <stdlib.h> 3 4int main(int argc, char *argv[]){ 5 FILE* fp; // file pointer 6 int i,j; 7 char tmpline[256]; // temporary space 8 9 char *fname = argv[1]; 10 j = atoi(argv[2]); 11 fp = fopen(fname, "r"); // open a file 12 13 for (i=1; fgets(tmpline, 256, fp) != NULL; i++){ 14 if ( i == j ){ 15 printf("%s", tmpline); 16 } 17 } 18 19 fclose(fp); 20 return 0; 21}
実行結果
./example Hello.dat 2 Hello C
###補足情報(言語/FW/ツール等のバージョンなど)
GNU Emacs 22.1.1
ターミナル バージョン2.8
回答2件
あなたの回答
tips
プレビュー