代码
定义
bool readFile(string fileName,int n);//读取文件
实现
bool Graph::readFile(string fileName,int n)
{
ifstream f;
f.open(fileName, ios::in);
if (!f.is_open()) {
cout << "打开失败" << endl;
return false;
}
f.seekg(0);
double x;
int num = 0;
while (!f.eof())
{
f >> x;
this->matrix[num % n][num / n] = x;
num++;
if (f.fail())break; //解决eof多读一行的问题
}
f.close();
return true;
}
报错信息
解决方案
添加一个判断即可
if (num == n * n)
break;
定义
bool readFile(string fileName,int n);//读取文件
实现
bool Graph::readFile(string fileName,int n)
{
ifstream f;
f.open(fileName, ios::in);
if (!f.is_open()) {
cout << "打开失败" << endl;
return false;
}
f.seekg(0);
double x;
int num = 0;
while (!f.eof())
{
f >> x;
if(num==n*n)
break;
this->matrix[num % n][num / n] = x;
num++;
if (f.fail())break; //解决eof多读一行的问题
}
f.close();
return true;
}
总结
文件读写时候,会多读一个文件截止符 这是报错所因