0
私は文字列int、doubleを含むテキストファイルを持っています。このように:ファイルからさまざまな種類のデータを読み取る方法
アッシャー10 14.5
ジュリア14 15.5
Iは、3つの別々のアレイにこのデータを読み取る必要があります。 Cは文字列配列を持たないので、char配列、int配列、double配列が必要です。私のコード:
const int num = 18; //number of data.txt lines
char col_one[15];
int col_two;
double col_three;
int c;
int numberArray[num];
char *nameArray[num];
double doubleArray[num];
int size = 0;
FILE *file;
file = fopen("data.txt", "r");
if (file) {
while ((c = getc(file)) != EOF)
{
fscanf(file, "%s %d %lf", &col_one, &col_two, &col_three);
nameArray[size] = col_one;
numberArray[size] = col_two;
doubleArray[size] = col_three;
size++;
}
fclose(file);
}
for (int i = 0; i < num; i++)
{
printf("%s \n" ,nameArray[i]);
}
しかし、私のコードは最初の単語だけを読み取り、それを18回印刷します。どのように文字列変数を読み込んでそれをchar配列に入れることができますか?
nameArray[size] = col_one;
で
'fscanf' – izlin
'しばらく()(C = getc関数(ファイル)!= EOF) { 関数fscanf(ファイル、 "%sの%D%LF"、&col_one、&col_two、&col_threeの戻り値をチェックしてみてください);ファイル名 "%14s%d%lf"、col_one、&col_two、&col_three)== 3 && size
BLUEPIXY
そして' i < num;' --> 'i
BLUEPIXY