怎样通过VC++使用基于MFC 编写一个可以读取编写保存txt文件的程序?要详细啊 说不清楚加qq675907807 200
txt文件中是两列坐标数据!怎么能读取并且一列表示横坐标一列表示纵坐标显示在窗口上?并且能够修改数据和保存更改后的数据??跪求大神指导啊!!!qq675907807又追加...
txt文件中是两列坐标数据!怎么能读取并且一列表示横坐标一列表示纵坐标显示在窗口上?并且能够修改数据和保存更改后的数据??跪求大神指导啊!!!qq675907807 又追加财富
展开
4个回答
展开全部
我给你读取txt的程序,你稍微修改一下就可以用了,我自己刚刚测试一下,可以用的。
我这里的txt,都是整数数据,分成两列,如果你有更多列,就加上while语句吧!
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
char seps[] = " ,\t\n";
char * token;
fstream fin("my.txt");
string temp;
char * mystring;
int a = 0;
//string temp = "A string\tof ,,tokens\nand some more tokens";
int num = 0;
while(getline(fin, temp))
{
num++;
}
fin.clear();
fin.seekg(ios::beg);// 当不知道长度时候调用
int * x = new int[num];
int * y = new int[num];
int i = 0;
while(getline(fin, temp))
{
mystring = new char[temp.length()+1];
std::strcpy(mystring, temp.c_str());
token = strtok( mystring, seps );
x[i] = atoi(token);
token = strtok( NULL, seps );
y[i] = atoi(token);
i++;
delete mystring;
}
//delete token;
for(int j = 0; j < num; j++)
cout << x[j] <<" " << y[j] << endl;
system("pause");
return 0;
}
展开全部
从这里看来,读取与显示已经可以基本确定使用何种方式。但是你的修改可能要斟酌一下:是要在显示的图形上修改还是另外添加两个控件让用户手动输入坐标然后修改其值的,修改后可以再更新显示,然后保存数据。如果是在显示的图上修改有点麻烦,而且也不知道你到底多少个点,每个点画出来可能都成一个蜂窝了......
画图的话,看你这也没多复杂,可以直接自己绘制,而屏幕坐标是整数的,你的数据必须要根据显示区域的大小进行按比例绘制。
比如显示区域宽200
你的x坐标的最大值是100,假设你有x坐标为5,那你这5在显示区域的坐标就是5/100*200 = 10。
另:如果你的点数不是很大,可以单点绘制在显示区域,然后移动鼠标到指定点的附近就显示它的x和y的值,同时提供编辑框可以修改其值即可。点数大了也没关系,把显示区域搞成滚动的。
大概就能扯这么多,看你具体修改采用何种方式了。
画图的话,看你这也没多复杂,可以直接自己绘制,而屏幕坐标是整数的,你的数据必须要根据显示区域的大小进行按比例绘制。
比如显示区域宽200
你的x坐标的最大值是100,假设你有x坐标为5,那你这5在显示区域的坐标就是5/100*200 = 10。
另:如果你的点数不是很大,可以单点绘制在显示区域,然后移动鼠标到指定点的附近就显示它的x和y的值,同时提供编辑框可以修改其值即可。点数大了也没关系,把显示区域搞成滚动的。
大概就能扯这么多,看你具体修改采用何种方式了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用CFi|e读取,保存,读入缓冲区后,见到回车换行符就换一行,当然,要求不高可以用向导建立单文档介面,你甚至不用输入任何代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你可以先将所有的数据读出离,放在CStringArray,然后再重新写入,当读到当前数据时进行修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询