24小时热门版块排行榜    

查看: 1955  |  回复: 5

fangsteel

木虫 (正式写手)

[求助] 用vc++怎么实现把txt文件的数据导入到数组以便于运算

如题,是用fstaeam么?具体怎么使用?谢谢!
回复此楼
gromacs
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
2楼2013-08-16 18:12:44
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

神气活现

铁虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
xzhdty: 金币+1, 感谢参与 2013-08-17 10:53:31
fangsteel: 金币+3 2013-08-17 17:18:25
这个很简单,读txt文件,有多种方法。
最简单的fread, c++的ftream ,或者mfc的readline 都可以。
重点在于按空格或者逗号切分字符串,然后转换为数值。
完全可以使用scanf函数,如果c++比较熟,可以使用boost库,stl也有相应的切分函数使用。
3楼2013-08-16 19:43:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangsteel

木虫 (正式写手)

引用回帖:
3楼: Originally posted by 神气活现 at 2013-08-16 19:43:54
这个很简单,读txt文件,有多种方法。
最简单的fread, c++的ftream ,或者mfc的readline 都可以。
重点在于按空格或者逗号切分字符串,然后转换为数值。
完全可以使用scanf函数,如果c++比较熟,可以使用boost库 ...

具体的程序设计代码应该怎么写呢,没怎么学过c++额,对fstream函数的使用格式不太了解,谢谢!
gromacs
4楼2013-08-17 17:19:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

神气活现

铁虫 (初入文坛)

【答案】应助回帖

#include <iostream>
#include <string>
#include <fstream>

using namespace std;
int main()
{
string fn;
ifstream txtfile (fn.c_str());
// 下面处理数据即可
}   

大概就是这样的,很简单
5楼2013-08-17 22:23:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangsteel

木虫 (正式写手)

引用回帖:
5楼: Originally posted by 神气活现 at 2013-08-17 22:23:15
#include <iostream>
#include <string>
#include <fstream>

using namespace std;
int main()
{
string fn;
ifstream txtfile (fn.c_str());
// 下面处理数据即可
}   

大概就 ...

我写了一个,数据时三维坐标,先把文件(名字是abc.gro)打开再导入到二维数组中,然后算两点之间的距离,为什么运行老出错?求指教
#include <stdio.h>
#include <math.h>
#define M 264
#define N 3
#define length 0.15

int main()
{        FILE*stream;
         float a[M][N],b[1000];
                 float x1,y1,z1,x2,y2,z2,result;
                 int i,j,m,n;
                 int k=0;

                  stream=fopen("d:/abc.gro","r";
                     for(i=0;i<M;i++)
                          for(j=0;j<N;j++)
                           fscanf(stream,"%f",&a[M][N]);
                       
                         fclose(stream);

                                             for(m=0;m<M;m++)
                           for(n=0;n<M;n++)
                           { x1=a[m][0];
                             y1=a[m][1];
                              z1=a[m][2];
                                      x2=a[n][0];
                               y2=a[n][1];
                                          z2=a[n][2];

                           result=sqrt(pow(x2-x1,2+pow(y2-y1,2)+pow(z2-z1,2));
                           if (result<length&&result!=0)
                           { b[k]=result;
                             k++;
                             printf("%f",b[k]);
                           }                          
                          
                           }
                  

return 0;


}
gromacs
6楼2013-08-25 21:38:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fangsteel 的主题更新
信息提示
请填处理意见