永发信息网

C++中写程序完成读文件时,文件不存在的异常处理功能,并测试。 谢谢

答案:3  悬赏:70  手机版
解决时间 2021-02-20 14:23
试举例说明,谢谢啊
最佳答案
我写这个的前提是已经有一个文件,而且文件里面有相应的数据。因为不知道你的那些处理是什么,所以没有进行处理。我所做的只是将数据读了出来,然后放到了二维数组里面,然后再将这些数据写到了另外的一个方件里面。那些处理,你可以直接对这个程序中二维数组进行处理(数据里面存的就是原文件的数据),然后再将二维数组里面的数据写回原文件。编译器我用的是VS.
infile >> a[m][n]这句话,就是将原文件里面的数据读到一个二维数组里面。m和n都是从零开始。我这里可以运行成功啊。我不知道你的原因是什么。
#include
#include
using namespace std;

int main()
{
ifstream infile;
ofstream outfile;
int ch;
int row = 1;
int column = 1;
infile.open("d://hello.txt");
while ((ch = infile.get()) != EOF)
{
column++;
if (ch == 10)
{
row++;
}
}
column = column / 2 / row;
infile.close();
infile.clear();
infile.open("d://hello.txt");
//在行列都知道之后,动态创建一个二维数组
int **a = new int *[row];
for (int i = 0; i < row; ++i)
{
a[i] = new int[column];
}
int m = 0;
int n = 0;
while (infile >> a[m][n])
{
++n;
if (n % 3 == 0)
{
++m;
n = 0;
}
}
infile.close();
outfile.open("d://reHello.txt");
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < column; ++j)
{
outfile << a[i][j] << " ";
}
outfile << endl;
}
//释放空间
for (int i = 0; i < row; ++i)
{
delete [] a[i];
}
delete []a;
a = NULL;
return 0;
}
请参考
全部回答
你好! if(!outfile) { cerr<<"文件打开失败"<
  • 2楼网友:怀裏藏嬌
  • 2021-02-19 20:46
判断文件是否存在,不存在提示用户即可。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯