C言語において,以下のようなテキストファイルがあったとき,
"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"
以下のように別のファイルに出力しなおしたいです.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
読み込むテキストファイル内の数字の量は変わりますが,必ず3の倍数です.
また,最初と最後は「"」で囲まれています.
以下のようなコードを実装しましたが,最後の「"」がうまく判定できず,無限ループになってしまいます.
C
1int main(){ 2 FILE *fp,*fp2; 3 char str[16]; 4 int num1,num2,num3; 5 6 fp = fopen("a.txt", "r"); 7 fp2 = fopen("a_format.txt", "w"); 8 9 if (fp == NULL) { 10 printf("file not open!\n"); 11 return -1; 12 } 13 if (fp2 == NULL) { 14 printf("file not open!\n"); 15 return -1; 16 } 17 18 //最初の「"」を読み取り のつもり 19 fscanf(fp, "%s", str); 20 21 while (fscanf(fp, "%d %d %d", &num1, &num2, &num3) != EOF) { 22 fprintf(fp2, "%d %d %d\n", num1, num2, num3); 23 //どのようにして最後の「"」を飛ばせばよいのか… 24 } 25 26 fclose(fp); 27 fclose(fp2); 28 29 return 0; 30}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/12 03:24