• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 ファイル読み込み結果の表示)

C言語 ファイル読み込み結果の表示

このQ&Aのポイント
  • C言語でファイルを読み込んで、結果を表示する方法について教えてください。
  • ファイルの内容を読み込んで、指定した形式で表示する方法を知りたいです。
  • 「aaa.csv」というファイルを読み込んで、結果が意図しない形式で表示されます。どのように修正すれば正しく表示されるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

改行コード('\n')の扱いが悪さをしていたようです。 #include <stdio.h> int main(void) { FILE *fp; char data1[20][100]; fp = fopen("aaa.csv", "r"); if (fp == NULL) { fprintf(stderr, "file open error\n"); return -1; } while (1) { if(fscanf(fp, "%[^,],%[^,],%[^,],%[^,],%s\n", data1[0], data1[1], data1[2], data1[3], data1[4]) == EOF) { return -1; } else { printf("%s %s %s %s %s\n", data1[0], data1[1], data1[2], data1[3], data1[4]); } } fclose(fp); return 0; } で直るかと。 なお、ここの掲示板では[code]タグは無効です。

tokagenosuke
質問者

お礼

解決いたしました。 ありがとうございました。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

もし、EOFの判定の際に変数lineをどうしても使いたければ、 if文におけるカッコを適切に補って下記のとおりにする必要があります。 #include <stdio.h> int main(void) { FILE *fp; char data1[20][100]; int line; fp = fopen("aaa.csv", "r"); if (fp == NULL) { fprintf(stderr, "file open error\n"); return -1; } while (1) { if ((line = fscanf(fp, "%[^,],%[^,],%[^,],%[^,],%s\n", data1[0], data1[1], data1[2], data1[3], data1[4])) == EOF) { return -1; } else { printf("%s %s %s %s %s\n", data1[0], data1[1], data1[2], data1[3], data1[4]); } } fclose(fp); return 0; }

tokagenosuke
質問者

お礼

解決いたしました。 ありがとうございました。

関連するQ&A