私は名前、次いで入力ファイルからデータを読み取り、
Ben 4
Mary 12
Anna 20
Gary 10
Jane 2
と等インデントによって分離された数を有する入力ファイルを読み取る予定の構造体配列にそれを格納する後ヒープの並べ替えを行いますデータに私はデータをコピーして構造体配列に格納するのに問題があります。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxcustomers 100
struct customer{
char name[20];
int service;
};
int main()
{
struct customer list[maxcustomers];
int i;
char c;
FILE *input;
FILE *output;
input = fopen("input-file.txt","r");
output = fopen("output-file.txt","w");
if(input == NULL){
printf("Error reading file\n");
exit(0);
}
else{
printf("file loaded.");
}
while((c=fgetc(input))!=EOF){
fscanf(input, "%s %d", &list[i].name,&list[i].service);
printf("%s %d", list[i].name,list[i].service);
i++;
}
fclose(input);
//heapsort(a,n);
//print to output.txt
fclose(output);
return 0;
}
これまで登録するとファイルが開き、「ファイルが読み込まれました」が表示されますが、その後は失敗します。私は明らかに構造体にデータを保存していません。
@chrisaycockは "あなたが'必要があります" %sの\トン%D "''の代わりの" %sの%dの" ' - >番号' '\ t''と'%2'が空白の先頭を消費するので、ここでは空白にマッチします。 – chux