关于 MFC 读取 txt 数据,并且画曲线图解决方法
关于 MFC 读取 txt 数据,并且画曲线图记事本中保存的数据格式如:
11 33 88 28 33
10 56 87 11 20
...
比如每行 5 个数据,有很多行。现在想把数据读出来,并且画曲线图到已经创建好的对话
框上,希望画出坐标轴和数据点曲线,要这么做
------解决方案--------------------
得到数据,格式化到数组中
根据数组的值,反复 moveto,lineto...
------解决方案--------------------
举一个例子,怎么读取格式化的文本文件,也就是你的整数型的,参考下面的
将一些格式化的数据写入文本文件,再从该文件中以格式化方法读出显示到屏幕上,其格式
化数据是两个学生记录,包括姓名、学号、两科成绩。
#include
main(
)
{
FILE
*fp;
int
i;
struct
stu{
/*定义结构体类型*/
char
name[15];
char
num[6];
float
score[2];
}student;
/*说明结构体变量*/
if((fp=fopen("test1.txt","w"))==NULL)
{
/*以文本只写方式打开文件*/
printf("cannot
open
file");
exit(0);
}
printf("input
data:\n");
for(
i=0;i<2;i++)
{
scanf("%s
%s
%f
%f",student.name,student.num,&student.score[0],
&student.score[1]);
/*从键盘输入*/
fprintf(fp,"%s
%s
%7.2f
%7.2f\n",student.name,student.num,
student.score[0],student.score[1]);
/* 写入文件*/
}
fclose(fp);
/*关闭文件*/
if((fp=fopen("test.txt","r"))==NULL)
{
/*以文本只读方式重新打开文件*/
printf("cannot
open
file");
exit(0);
}
printf("output
from
file:\n");
while
(fscanf(fp,"%s
%s
%f
%f\n",student.name,student.num,&studen
t.score[0],student.score[1])!=EOF)
/
*从文件读入*
/
printf("%s
%s
%7.2f
%7.2f\n",student.name,student.num,
student.score[0],student.score[1]);
/* 显示到屏幕*/
fclose(fp);
/*关闭文件*/
}
程序设计一个文件变量指针,两次以不同方式打开同一文件,写入和读出格式化数据,有一
点很重要,那就是用什么格式写入文件,就一定用什么格式从文件读,否则,读出的数据与
格式控制符不一致,就造成数据出错。上述程序运行如下:
input data:
xiaowan j001 87.5 98.4
xiaoli j002 99.5 89.6
output from file:
xiaowan j001 87.50 98.40
xiaoli j002 99.50 89.60
列表文件的内容显示为:
c:\>type test.txt
xiaowan j001 87.50 98.40
xiaoli j002 99.50 89.60
此程序所访问的文件也可以定为二进制文件,若打开文件的方式为:
if ((fp=fopen("test1.txt","wb"))==NULL)
{ / * 以二进制只写方式打开文件* /
printf("cannot open file");
exit(0);
}
其效果完全相同。