读书人

c 语言怎么读取文本文件中的数据~ 高手

发布时间: 2012-03-15 11:50:38 作者: rapoo

c 语言如何读取文本文件中的数据~ 高手帮忙讲解下
我现在要实行从一个文本文件中读去数据 重新排列后 输出到另一个文件中~
我用的是 fscanf函数 为什么读取不到数据?麻烦高手解决下 谢谢~
#include <stdio.h>

main()
{int n=1;
float m=-1;
FILE *fp,*fp1;
char filename[2][20]; /*用来存放文件的地址和名字*/

do
{printf( "cannot open this file1\n please put in the name of file1: ");
scanf( "%s ",filename[1]);
} while((fp1=fopen(filename[1], "r "))==NULL); /*输入文件1的地址和名称,并按地址打开文件*/

do
{printf( "cannot open this file4\n please put in the name of file4: ");
scanf( "%s ",filename[0]);
} while((fp=fopen(filename[0], "w+ "))==NULL);


while(n <100)
{
fscanf(fp1, "%f ",&m);
fprintf(fp, (n%10==0? "%8f\n ": "%8f "), m);
n++;
}


printf( "n=%d \n ",n);
fclose(fp);
fclose(fp1);


}

输出的结果是 输出99个 M的初始-1~
谢谢高手 帮忙讲解下

[解决办法]
你这个程序应该没有问题,我拿过来到我的机器上试了试,可以运行的很好,没有问题....给你参考一下..

#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
int n=1;
float m=-1,m1,m2,m3,m4;
FILE *fp,*fp1;
char filename[2][20]; /*用来存放文件的地址和名字*/

do
{
printf( "cannot open this file1\n please put in the name of file1: ");
scanf( "%s ",filename[1]);
} while((fp1=fopen(filename[1], "r "))==NULL); /*输入文件1的地址和名称,并按地址打开文件*/

do
{
printf( "cannot open this file4\n please put in the name of file4: ");
scanf( "%s ",filename[0]);
} while((fp=fopen(filename[0], "w+ "))==NULL);


while(n <=5)
{
//fscanf(fp1, "%f ",&m);
//fprintf(fp, (n%10==0? "%8f\n ": "%8f "), m);
//cout < < "m = " < <m < <endl;
//fprintf(fp, "%.1f ", m);
fscanf(fp1, "%f %f %f %f %f ",&m,&m1,&m2,&m3,&m4);
n++;
}

printf( "%.1f,%.1f,%.1f,%.1f,%.1f ",m,m1,m2,m3,m4);
fprintf(fp, "%.1f %.1f %.1f %.1f %.1f ",m4,m3,m2,m1,m);
printf( "n=%d \n ",n);
fclose(fp);
fclose(fp1);

return 1;
}

读书人网 >C语言

热点推荐