數組我試圖通過fscanf讀取文件test.txt並將其存儲在結構數組中。這是我試過的。這裏的問題是fscanf
不能正常工作。閱讀文件後,我也試圖在屏幕上打印它,但它不起作用。C編程:讀取文件並存儲在struct
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Item {
double value;
int unit;
char name[50];
};
int load(struct Item* item, FILE* data);
void display(struct Item item, int variableA);
int main()
{
struct Item I;
int i;
char ck;
ck = fopen("test.txt", "r");
if (ck)
{
for (i = 0; i < 3; i++)
{
load(&I, ck);
display(I, 0); //DISPLAY FUNCTION THAT READS test.txt and DISPLAYS
}
fclose(ck);
}
return 0;
}
int load(struct Item* item, FILE* data)
{
fscanf(data, "%d,%.2lf,%s\n", &(*item).unit,&(*item).value,&(*item).name);
return 0;
}
void display(struct Item item, int variableA)
{
printf("|%3d |%12.2lf| %20s |***\n", item.unit, item.value, item.name);
return;
}
這是我在test.txt文件:
205,11.20,John Snow
336,23.40,Winter is coming
220,34.20,You know nothing
錯誤:計劃與一些警告編譯,但我得到段錯誤當我執行的代碼。
任何想法爲什麼?
輸出期望:OUTPUT應該從test.txt文件中讀取並顯示在屏幕上。
也許是因爲 「約翰」 是不正確;那就是「Jon」Snow ... –
@ringø哈哈:D:D:D – John
您必須調試程序以查看發生錯誤的位置(閱讀或顯示),並查看是否得到您認爲應該得到的結果。 – Phil1970