我的问题可能很琐碎,但我不知道如何处理它。 我有一个程序,从文件中读取矩阵,然后从文件中收集它,显示它并在其上执行数字方法。 当我通过cin插入一些未知数(在这种情况下,它等于文件中的行数),我得到一切正确。 但是,当我尝试从文件读取行数,然后读取矩阵,显示它并执行方法 - 虽然我得到正确的行数,程序读取矩阵,就好像它包含0. 这里是计数行:从文件中读取行数并在C++中使用它的函数
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',应该不是那种善意的'文件'而不是?我没有看到你在哪里设置文件的文件名,甚至打开它......这段代码看起来像一团糟。 – lpapp