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