コマンドライン入力にファイル名を入力すると,そのファイルの内容をそのまま標準出力に出力するプログラムを作成しているのですが、ファイルの内容とともにファイル名も出力できるようにしたいのですがどうもうまくいきません。
【実行例】
[file_03.txt]の内容
ABCDEFG
12345
hijklmn
67890
「コマンドライン入力」
file_03.txt
「標準出力」
[file_03.txt]
ABCDEFG
12345
hijklmn
67890
作成したプログラムは以下の内容なのですが、現状ではファイルの中身だけが出力されるだけです。
printf("%s\n", FILE);を使ってファイル名を出力しようとしたのですが、これだと実行しているファイル名が出力されてしまうだけなのでうまくいきませんでした。
参照しているテキスト名を出力するコードが分からないので、できればコードを教えていただきたいです。
c
1#include <stdio.h> 2 3#define SIZE 256 4 5int main(int argc, char *argv[]){ 6 FILE *fp; 7 char line[SIZE]; 8 int i; 9 10 if ((fp = fopen(argv[1], "r")) == NULL) { 11 printf("Can't open the file.\n"); 12 return 1; 13 } 14 15 for (i=1; fgets(line, SIZE, fp) != NULL; i++) { 16 printf("%s", line); 17 } 18 fclose(fp); 19 20 return 0; 21}
回答1件
あなたの回答
tips
プレビュー