0

所以在我保存在我的程序中的文件中显示为

name name number
name name number
name name number
name name number
name name number

我需要获取该文件中元素的数量,所以在这种情况下它应该是 5

 FILE *pRead;

int num = 0;

 pRead = fopen("names.dat", "r");

 if ( pRead == NULL )

 printf("\nFile cannot be opened\n");

else



 while ( !feof(pRead) ) {

num++ //add one to num
printf("Num = ",num); //pint the value of num

 } //end loop

这就是我尝试过的,但它会无限循环。

4

2 回答 2

0

您好,您打开了文件但没有读取它。意味着文件指针停留在文件的开头,因此您的循环不会终止。您可以将其更改为;

char line[100]; //Assuming max. length of one line is 100

while(fgets(line, 100, pRead) != NULL)
{
   //process the read data "line array" here
}
于 2013-10-29T15:47:40.047 回答
0

您需要从循环中的文件中读取:

char buf[500];

 while ( !feof(pRead) ) {
    fgets(buf, 500, pRead);  // Read another line from the file
    num++ //add one to num
    printf("Num = ",num); //pint the value of num

 } //end loop
于 2013-10-29T15:47:15.900 回答