C++で下記のtxt fileを開いて、中身を出力させたいのですが、for文でうまく出力させる方法を教えてください。
while文だとうまくい気ましたが、for文はうまくいかないです。
参考サイト:C, C++でのファイル入力をまとめてみたよ
txt file("test_name.txt")
txt
1test_000.png 2test_001.png 3test_002.png 4test_003.png 5test_004.png 6test_005.png
while文
cc
1#define NAME_TXT "./test_name.txt" 2#define BUFSIZE 100 3 4FILE* fp; // FILE型構造体 5// 読み込みモードでファイルを開く 6fp = fopen(NAME_TXT, "r"); 7char tmp[BUFSIZE]; 8int num; 9int sum = 0; 10while(fscanf(fp, "%s %d", tmp, &num) != EOF){ 11 // ここでtmpを煮るなり焼くなりする 12 printf("%s %d\n", tmp, num); // そのまま出力 13 // 値をsumに加算 14 sum += num; 15 } 16 17printf("\nsum: %d\n", sum); 18// ファイルを閉じる 19fclose(fp); 20>>>>> 21// 出力結果 22test_000.png 32526 23test_001.png 32526 24test_002.png 32526 25test_003.png 32526 26test_004.png 32526 27test_005.png 32526
for文
cc
1for (int n=0; n<BLOCK_SIZE; n++){ 2 fp = fopen(NAME_TXT, "r"); 3 char tmp[BUFSIZE]; 4 if(fscanf(fp, "%s %d", tmp, &n) != EOF){ 5 printf("%s %d\n", tmp, n); // そのまま出力 6 }; 7 fclose(fp); 8}; 9>>>>> 10// 出力結果 11test_000.png 4 12test_000.png 0 13test_000.png 1 14test_000.png 2 15test_000.png 3 16test_000.png 4
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。