- 论坛徽章:
- 0
|
大家好!
我在RedHat Linux 9 下用vi写了一个测试文件读写的小程序,用来读文本文件中的数据(文本文件用vi编辑成*.txt格式),之后用gcc编译。没有提示错误,但是读不出数据。
关键代码如下:
- //数组用做缓冲区,接收文件中的浮点型数据
- float array[10];
- FILE* fp;
- //打开文件
- if((fp=fopen("/mnt/wind/temp/data.txt","r"))==NULL){
- printf("Can not open file: %s\n","b.txt");
- exit(0);
- }
- printf("file opened\n");
-
- //fseek(fp,0,0);
- //如果读出数据不是10个,报错。----问题可能就出在这里了
- if(fread(array,sizeof(float),10,fp)!=10);
- printf("read error!\n");
- //输出
- int i;
- for(i=0;i<10;++i){
- printf("%f\t",array[i]);
- if((i+1)%5==0) printf("\n");
- }
- fclose(fp);
复制代码
结果输出:
0.000000 0.000000 0.000003 0.000000 0.000000
0.000001 0.000016 0.000016 0.000000 0.000000
其中用于测试的文本文件中的数据大概如
45.23
25.15
...
还有一个现象就是,我如果用fwrite把一个数组中的数据写到一个新的文件中,
然后再用fread()读出,就没有问题。 |
|