Привет, я запускаю эту программу на Linux с помощью gcc -Wall -std = c99 и a./out. Я не получаю никаких предупреждений/ошибок. Но когда я печатаю свою информацию, прочитанную из файла, я получаю сумасшедшие выходы. файл содержит:открытие/чтение текстового файла в c
A13
B99
C2
D2
E44
F32
G2
H9
и выход:
id: A
size: 171522370
id: C
size: 876939826
id: 4
size: 843516466
код
typedef struct record{
char id;
int size;
}record;
int main()
{
record reg;
FILE *fp = NULL;
fp = fopen("idSize.txt", "r");
if ((fp = fopen("idSize.txt", "r")) == NULL){
printf("error opening file");
exit(1);
}
fread(®, sizeof(reg),1,fp);
while (!feof(fp)){
printf("id: %c\n", reg.id);
printf("size: %d\n", reg.size);
fread(®, sizeof(reg),1,fp);
}
fclose(fp);
return 0;
}
любая помощь будет очень признателен! спасибо Лотт
Если вы хотите некоторую помощь, пожалуйста, поставить некоторые усилия форматирования кода, так что легко читать. Помогите нам помочь вам. –
Извините, но это полный беспорядок. Является ли текст файла или двоичным, потому что вы его кодируете, как если бы вы читали поток байтов в структуру. Может быть, вы хотите использовать fscanf вместо этого? – OldProgrammer