構造体の配列に最大 100 のエントリを持つ CSV ファイルから値を読み取る単純なコードを作成しようとしています。
CSV ファイルの行の例:
1,Mr,James,Quigley,Director,200000,0
次のコードを使用して値を読み取りますが、値を出力すると値が正しくありません
for(i = 0; i < 3; i++) /*just assuming number of entries here to demonstrate problem*/
{
fscanf(f, "%d,%s,%s,%s,%s,%d,%d", &inArray[i].ID, inArray[i].salutation, inArray[i].firstName, inArray[i].surName, inArray[i].position, &inArray[i].sal, &inArray[i].deleted);
}
次に、名を出力すると、値はすべて名に割り当てられます。
for(j = 0; j < 3; j++) /* test by printing values*/
{
printf("Employee name is %s\n", inArray[j].firstName);
}
ames,Quigley,Director,200000,0
そのように与えるなど。fscanf 行をフォーマットする方法だと確信していますが、動作させることができません。
ここに私が読んでいる私の構造体があります:
typedef struct Employee
{
int ID;
char salutation[4];
char firstName[21];
char surName[31];
char position[16];
int sal;
int deleted;
} Employee;