读 - 写C中的Txt文件

时间:2016-12-17 12:16:31

标签: c text-files scanf

我正在尝试阅读 - 写一个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);

1 个答案:

答案 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);
    }