while (fscanf(ifp, " %d %d kl. %d %s - %s %d - %d %d\n", &round, &date, &clock, teeam, &goals, &attendance)
我可能应该知道这一点,但是第二个 %d 应该将日期导入到我的变量中,例如 20.20.2012 但我只得到前 20 个而不是其余的。
谢谢你 :)
在内部,只要字符串代表一个有效的整数,它就会被读取(所以它会在遇到“.”时停止)。
您如何将日期表示为一个整数?您可以有 3 个变量并像这样读取它们:
fscanf(ifp, "%d.%d.%d", &day, &month, &year);
顺便说一句,20/20 是一个奇怪的日期 :-)
格式说明%d
符允许您扫描单个数值,而不是三个数字的序列。
您可以按照您期望的格式读取日期,如下所示:
char date_buf[11];
scanf("%10[0-9.]", date_buf);
文本不会被解析为三个整数,而是存储为文本。你可以像这样把它分成一个月、一天和一年:
int month = atoi(&date_buf[0]);
int day = atoi(&date_buf[3]);
int year = atoi(&date_buf[6]);