Я новичок в программировании и сейчас изучаю язык Си.У меня была проблема, когда я пытался прочитать данные из файла и сохранить их в массиве символов.
Мой ввод выглядит примерно так:
Hayes,Darrell,Covey,Dasia,Hayes,Neftaly
Ashby,Angela,Chapman,Ebony,Ashby,Elliott
Мой код выглядит так:
while(1) {
int ret = fscanf(fp," %[^,],%[^,],%[^,],%[^,],%[^,],%[^,]",
g_human_array[g_human_count].last_name,
g_human_array[g_human_count].first_name,
g_human_array[g_human_count].mother_last,
g_human_array[g_human_count].mother_first,
g_human_array[g_human_count].father_last,
g_human_array[g_human_count].father_first
);
printf("%s,%s,%s,%s,%s,%s,%d\n",
g_human_array[g_human_count].last_name,
g_human_array[g_human_count].first_name,
g_human_array[g_human_count].mother_last,
g_human_array[g_human_count].mother_first,
g_human_array[g_human_count].father_last,
g_human_array[g_human_count].father_first,ret
);
if(ret != 6) {
fclose(fp);
return READ_BAD_RECORD;
}
Тем не менее, мой вывод испорчен так:
Hayes,Darrell,Covey,Dasia,hby,Neftaly
Ashby,6
6
,,,,,,0
0
human_t и g_human_array определены так:
typedef struct human_struct {
char father_first[NAME_LENGTH];
char father_last[NAME_LENGTH];
char mother_first[NAME_LENGTH];
char mother_last[NAME_LENGTH];
char first_name[NAME_LENGTH];
char last_name[NAME_LENGTH];
} human_t;
human_t g_human_array[MAX_HUMANS];