我正在尝试阅读 - 写一个txt文件,其中包含不同行的多个信息。 它的形式为:
Number-LicencePlate NumberOfSeats
Name number phonenumber
Name number phonenumber
Name number phonenumber
要阅读第一行,使用fscanf非常容易 但是如何使用fscanf读取其余部分来获取3个不同的变量(名称,数字,电话)?
以相同的形式写入此文件将在稍后阶段发布,但会尝试解决此问题。
FILE *bus;
bus = fopen ("bus.txt","r");
if (bus == NULL)
{
printf("Error Opening File, check if file bus.txt is present");
exit(1);
}
fscanf(bus,"%s %d",platenr, &numberofseats);
printf("Bus Licence plate Nr is: %s and number of seats is: %d", platenr, numberofseats);
答案 0 :(得分:1)
你应该使用一个循环来实现你正在寻找的东西,因为你的代码除了第一行之外没有读任何东西,因为"FILE *bus;"
是指向文本文件第一行的指针。
为了全部阅读,您可以通过检查文件结束(EOF)来使用简单的while循环。我知道有两种方法,它们在这里;
while(!feof(bus)){
fscanf(bus,"%s %d",platenr, &numberofseats);
printf("Bus Licence plate Nr is: %s and number of seats is: %d", platenr, numberofseats);
}
此代码块将在读取后打印每一行。 我们用过“feof(FILE * stream);”函数Learn More Here。还有其他文章How to read a whole text file
建议的替代方法但我会在这里提出解决方案。
while(fscanf(bus,"%s %d",platenr, &numberofseats)!=EOF){
printf("Bus Licence plate Nr is: %s and number of seats is: %d", platenr, numberofseats);
}