如下数据保存在文件infile.dat中.我想把它读出来,存到结构体数组中
stuct pro
{float msl;
float la,lo;
double refractivity,density,pressure;
float temp;
}atm[200];
然后把数据写到out.txt中.
请问高手,具体该怎么做呢?如果可以的话,希望能有一个完整的C程序.如果能发到我的邮箱就更好了. EMAIL:[email protected]
还有点小问题,美中不足.
1.如果要自己控制换行,比如图片中有7列数据,我只想要前四列,如何让它在读完四个数之后自动换行读下一行的数?
2.这样的文件有N个,且文件名没有规律.如何利用文件名做索引,将它们都用这个程序处理了?
3.每个文件中的数据行数不确定,是否要用到链表处理呢?
如果您觉得问题太多了,只回答3和4或者只回答3也可以,先谢谢诸位了!
C语言文本文件的读写
答案:3 悬赏:80
解决时间 2021-02-21 19:35
- 提问者网友:娇妻失忆
- 2021-02-21 04:43
最佳答案
- 二级知识专家网友:24K纯糖
- 2021-02-21 05:44
//---------------------------------------------------------------------------
#include
struct pro
{float msl;
float la,lo;
double refractivity,density,pressure;
float temp;
}atm[200];
int main(void)
{
FILE *fp=fopen("infile.dat","r"),*fp2=NULL;
int i;
if (!fp||(fp2=fopen("out.txt","w"))==NULL) {
fprintf(stderr,"FILE ERROR");
return -1;
}
for (i = 0; i<200; i++) {
fscanf(fp,"%f%f%f%lf%lf%lf%f",&atm[i].msl,&atm[i].la,&atm[i].lo,&atm[i].refractivity,&atm[i].density,&atm[i].pressure,&atm[i].temp);
fprintf(fp,"%f\t%f\t%f\t%lf\t%lf\t%lf\t%f\n",atm[i].msl,atm[i].la,atm[i].lo,atm[i].refractivity,atm[i].density,atm[i].pressure,atm[i].temp);
}
fclose(fp);
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------
#include
struct pro
{float msl;
float la,lo;
double refractivity,density,pressure;
float temp;
}atm[200];
int main(void)
{
FILE *fp=fopen("infile.dat","r"),*fp2=NULL;
int i;
if (!fp||(fp2=fopen("out.txt","w"))==NULL) {
fprintf(stderr,"FILE ERROR");
return -1;
}
for (i = 0; i<200; i++) {
fscanf(fp,"%f%f%f%lf%lf%lf%f",&atm[i].msl,&atm[i].la,&atm[i].lo,&atm[i].refractivity,&atm[i].density,&atm[i].pressure,&atm[i].temp);
fprintf(fp,"%f\t%f\t%f\t%lf\t%lf\t%lf\t%f\n",atm[i].msl,atm[i].la,atm[i].lo,atm[i].refractivity,atm[i].density,atm[i].pressure,atm[i].temp);
}
fclose(fp);
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------
全部回答
- 1楼网友:颜值超标
- 2021-02-21 06:28
infile.dat 里的数据是用什么格式存储的?
我的意思是,其中数据的存储顺序....
- 2楼网友:24K纯糖
- 2021-02-21 06:03
1、c语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。
2、例程:
#include
int a;
char b,c[100];
int main(){
file * fp1 = fopen("input.txt", "r");//打开输入文件
file * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==null || fp2==null) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |