【发布时间】:2014-04-17 05:17:01
【问题描述】:
我的问题可能是微不足道的,但我不知道如何处理它。 我有一个程序从文件中读取矩阵,然后从文件中收集它,显示它并对其执行数值方法。 当我通过 cin 插入未知数(在这种情况下,它等于文件中的行数)时,我一切正常。 但是当我尝试从文件中读取行数然后读取矩阵时,显示它并执行方法 - 尽管我正确获得了行数,但程序读取矩阵就好像它由 0 组成。 下面是计算行数的代码:
int countLines(ifstream &file){
string line;
int l = 0;
do{
getline(file, line);
l++;
}while(!file.eof());
return l;}
我在这里尝试使用它:
string nameoffile = "";
nameoffile = "Matrix1.txt";
ifstream file;
file.open(nameoffile.c_str());
if (file.good()==true)
{
cout <<"The file is available<<endl;
n = countLines(file);
cout << n << endl;
collectMatrix(file,n);
}
else
{
return 0;
}
displayMatrix(n);
例如,collectMatrix 是这样的:
void collectMatrix(ifstream &file, int n){
for(int i = 0; i <n; i++)
{
for(int j = 0; j <n; j++)
{
file>>A[i][j]; //matrix
}
}
for(int k=0; k<n; k++ )
{
file>>b[k]; //vector of results
} }
只要我在代码中有 cin>>n 而不是试图从文件中读取它,所有这些都可以工作。老实说,我必须从文件中读取它,但我的编程不太好,所以我会感谢任何提示和帮助。
【问题讨论】:
-
什么是
plik,不应该是file吗?我没有看到你在哪里设置文件的文件名,甚至没有打开它......到目前为止,这段代码看起来很乱。