如何在vs2010中的MFC应用程序中实现读取文件?急!!

假设要读取D盘根目录下的一个TXT文件,文件中有n行,每行m个float型数,之间用空格分开,如何读到一个二维数组里面?如{0 0.5 0.5 0.5
1 1.0 0.5 0.3
1 1.5 0.5 0.3}

第1个回答  2011-03-30
可以在DOC类中响应OnOpenDocument(LPCTSTR lpszPathName)函数,这是MFC自带的打开文件操作,lpszPathName是文件名。不用这个的话也可以用CFileDialog dlg,这是打开文件对话框,具体用法参见MSDN

#include <fstream>
#include <sstream>

BOOL CMySDIDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
double num[n][m]; // 你的数组
ostringstream oss;
oss << lpszPathName;
ifstream in (oss.str().c_str());
if (in.fail())
{
return FALSE;
}
else
{
string line;
string indexString;
int i = 0;
while (true)
{
getline (in, line);
if (in.eof () || in.fail ())
{
break;
}
istringstream is (line);
is >> indexString; // 逐行读取
int j = 0;
while (true)
{
is >> indexString;
if (!(is.fail()))
{
num[i][j] = atof(indexString.c_str()); // 字符串转浮点
j++;
}
else
{
break;
}
}
i++;
}
in.close();
return true;
}
}
第2个回答  2011-03-30
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin;
fin.open("d:\\temp.txt");

float num;
float arr[5][6];
if (!fin.is_open())
cout << "没有打开文件\n";
else
{
for (int i = 0; i < 5; i++)
for (int n = 0; n < 6; n++)
{
fin >> num;
arr[i][n] = num;
}
}

}
这是控制台代码。mfc不会本回答被网友采纳
第3个回答  2011-04-01
10的运行库而已,建议VC2010写的程序都使用MFC静态库的方式进行编译
另外,站长团上有产品团购,便宜有保证
第4个回答  2011-03-30
知不知道m、n的具体数值啊?
第5个回答  2011-03-30
fopen()
相似回答