У меня есть текстовый файл с данными по умолчанию, которые я создал.Теперь я хочу поместить их в мой массив.Но не успех ... Я не знаю, почему только первая запись данных структуры может храниться в моем массиве.
Я хочу, чтобы первые 9 записей были сохранены в Arr [0], secord 9 записей сохранены в Arr [1]и третья 9-я запись хранится в Arr [2], но в результате получается, что только recordNum может хранить в Arr [I].
Я очень благодарен и горжусь вами, если вы можете мне помочь, потому что я стараюсь много разне успех
Вот мое содержимое файла данных:
1001 - bric - 1 - human - 10 - 70.00 - Eric - home - arrive
1002 - She - 1 - human - 10 - 50.00 - she - home - arrive
1003 - She - 2 - human - 10 - 120.00 - Eric - home - arrived
Вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
struct record{
char recordnum [40];
char itemrecord [40];
char quantity [40];
char weight [40];
char itemname [40];
char catagory [40];
char recipient [40];
char final_destination [40];
char status [40];
};
int main(){
FILE *fileptr1, *fileptr2, fileptr3;
char filename[40]="data.txt";
int save;
char delete_num ;
char reply;
int n=1 , i=0;
#define MAX 9
struct record Arr[MAX];
printf("Enter file name: ");
scanf("%s", filename);
//open file in read mode
fileptr1 = fopen(filename, "r");
if (fileptr1== NULL){
printf("open unsuccessful,file not exist");
exit(1);
}
while(n>0){
n=fscanf(fileptr1,"%s %s %s %s %s %s %s %s %s",Arr[i].recordnum,
Arr[i].itemname, Arr[i].itemrecord, Arr[i].catagory, Arr[i].quantity,
Arr[i].weight, Arr[i].recipient, Arr[i].final_destination,
Arr[i].status );
i++;
}
n=i;
for(i=0; i<n-1 ;i++){
printf("%s \n" ,Arr[i]);
}
fclose(fileptr1);
return 0;
}
Результат:
Enter file name: data.txt
1001
1002
1003