Я пытаюсь использовать fscanf () в массиве struct. Я следовал предложенному решению до создания этого поста, но по некоторым причинам это не похоже на чтение всех данных в файле. Это только начало того, что мне нужно завершить, так как позже мне придется отсортировать элементы в моей структуре.
#define LCOUNT 128 // Sizeof of single line
#define ROW_COUNT 2 // Number of lines in file
struct Hurricane {
char Year[50];
char Name[50];
char State[50];
};
int main() {
struct Hurricane hurricane[ROW_COUNT]; // Declare hurricane of type Hurricane array
// File operations
FILE *fptr = fopen("hurricane.txt", "r");
// Return error if file no bueno
if (fptr == NULL) {
fprintf (stderr, "Failed to open file");
return -1;
}
// Start of row
int ROW;
// Read comma as delimiter into Struct
while(ROW != ROW_COUNT) {
fscanf(fptr, "%[^,],%[^,],%[^,]\n", &hurricane[ROW].Year, &hurricane[ROW].Name, &hurricane[ROW].State);
printf("%s\t%s\t%s\n", hurricane[ROW].Year, hurricane[ROW].Name, hurricane[ROW].State);
ROW++;
}
// Close file
fclose(fptr);
return 0;
}
И содержимое моих файлов:
1960, Донна, FL-N C
1969, Камиль, MS
1972, Агнес, FL
А затем вывод:
1960 Donna FL-N C
1969
---------------------------- ---- Процесс завершен через 0,02288 секунд с возвращаемым значением 0 Нажмите любую клавишу для продолжения. , .