dポイントプレゼントキャンペーン実施中!

C言語について質問です。
コマンドライン入力にファイル名を入力すると、そのファイルの内容をそのまま標準出力に出力するプログラムを作成したく以下のコードを考えました。

#include <stdio.h>
#define SIZE 256

int main(int argc, char *argv[]) {
FILE *fp;
char line[SIZE];
int i;

if ((fp = fopen(argv[1], "r")) == NULL) {
printf("Can't open the file.\n");
return 1;
}

for (i=1; fgets(line, SIZE, fp) != NULL; i++) {
printf("%d%s", i, line);
}

fclose(fp);

return 0;
}

このコードですと
1file text
2file text
という感じで出力されるのですが、、
↓の感じにしたいです
[file_01.txt]
file text
file text
・読み込んだファイル名も出力させたい
・行番号を削除したい


何卒よろしくお願いいたします。

A 回答 (2件)

#include <stdio.h>


#include <stdlib.h>
#define SIZE 256

int main(int argc, char *argv[]) {
 FILE *fp;
 char line[SIZE];

 if ((fp = fopen(argv[1], "r")) == NULL) {
  printf("Can't open the file.\n");
  return EXIT_FAILURE;
 }

 printf("[%s]\n", argv[argc-1]);

 for (int i=1; fgets(line, SIZE, fp) != NULL; i++) {
  printf("%s", line);
 }

 fclose(fp);

 return EXIT_SUCCESS;
}
    • good
    • 0

なにに悩んでいるのかがわからんなぁ.... 少なくとも「行番号を削除したい」については


わざわざ「行番号を付ける」ようなコードを自分で考えた
はずなのだから, その部分を修正すればいいと思うんだ.
    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!