***急!C语言中读文件的问题!在线****
C语言中读取像下面格式的文件,只能读取一行再把数字分离出来吗?能不能有像C++那样方便的方法
101 5 150
201 4 90
301 4 120
401 3 78
501 5 60
601 6 105
[解决办法]
while( 3 == scanf( "%d%d%d " , &a , &b , &c ) )
slove( a , b , c );
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
int data;
int count = 0;
if ((fp = fopen( "d:\\test.txt ", "r ")) == NULL)
{
printf( "can 't open test.txt\n ");
exit(1);
}
while (!feof(fp))
{
fscanf(fp, "%d ", &data);
count++;
printf( "%d ", data);
if (count%3 == 0)
printf( "\n ");
}
system( "pause ");
return 0;
}
[解决办法]
C++是把输入流给包装过了,底层也是一样的. C只提供了最基本的输入输出方式,不同的应用得自己处理。你也可以一次把数据全部读入一个字符数组str中(效率高),然后用sscanf(str, "%d ", &num)来从中读出数字。用C++的那种方式不一定比这个快。