C语言用fscanf()函数如何读取文件全部内容?

有一个文件,我知道数据在其中的存储格式,比如txt文件,所有数据都是以"%d %d %d %d %d\n"格式存储的:
1 1 1 1 1
2 2 2 2 2
.........
但是我不知道文件的长度,如何用fscanf()函数以同样的格式读取整个文件。
或者用其它函数也行,但格式要相同。

void read_txt(const char* Input, const char* Output){
FILE *fin = fopen(Input, "rb");//以二进制读入
FILE *fout = fopen(Output, "w");
unsigned char ch1,ch2;
while(fscanf(fin, "%c%c", &ch1,ch2) != EOF){//直到文件结束
fprintf(fout, "%d%d", ch1,ch2);//以10进制输出
}
}
int main(){
read_txt("D:/IN.txt","D:/OUT.txt");//txt文件目录
return 0;
}
注:判断文件结束处的语句:fscanf(fin, "%c%c", &ch1,ch2)。其中两个%c之间不能加空格,否则读到的二进制文件会不完整,比源文件少好多个字节
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-04
int []account;
for(int i=0;!feof(file_p);++i) /*file_p是文件标识符*/
{
fscanf(file_p,"%d",account[i]);
}本回答被提问者采纳
第2个回答  推荐于2017-09-04
int []account;
for(int i=0;!feof(file_p);++i) /*file_p是文件标识符*/
{
fscanf(file_p,"%d",account[i]);
}
第3个回答  2009-02-23
#include <stdio.h>
void main( void )
{
FILE *f;
int a,b,c,d,e;
f = fopen("a.txt", "r");
while(fscanf(f,"%d %d %d %d %d",&a,&b,&c,&d,&e)==5)
{
//你的代码
}
fclose(f);
}
相似回答