2
我有一個字符變量,其中包含代表examID的數字(它是char,因爲它必須是char)。我的文本文件看起來像這樣:從文本文件中讀取C
5 1 Exam 1 (audit 31.10.)
6 1 Exam 2 (audit 23.10.)
14 1 Lab 01 (audit 21.11.)
16 1 Lab 02 (audit 28.11.)
...
每行第一個號碼是examID,第二個是針對考試點的最大次數,在一行文字下場休息是考試名稱。我需要搜索文本進行examID匹配,如果匹配,我需要存儲最大數量的點,並在變量中檢查名稱以備後用。這是我到目前爲止有:
char examName[100];
char tmp[100];
int examID;
int maxPoint=0;
FILE *fin=fopen("Exams.txt", "r");
while(fgets(tmp, sizeof(char)*100, fin)!=NULL) {
sscanf(tmp, "%d", &examID);
if(examID==s.examNum)
printf("%d", examID);
}
所以,我發現比賽並打印它,和它的好,但我不知道如何行和考試的名讀取第二個數字。
另外一張小紙條,有沒有'&'提供因爲標識符是al,所以在'sscanf'中考試名稱準備好一個指針,它指向數組的第一個元素。 – AlienHoboken
感謝您的提示,但它只是不起作用。輸出如下所示:5 0然後是一些奇怪的字符。 5是正確的數字,0是錯誤的(在所有的例子中,我得到0而不是正確的數字)和字符串是完全離開這個世界 – yahzee
@yahzee - 這很奇怪,首先檢查我的旁邊注意上面,並試試看,聽起來像未初始化數據。如果仍然給出奇怪的結果,可以使用更全面的代碼示例進行更新。鑑於你給這個文本文件的上面的代碼,我看到這個工作正常。 – Mike