C ++读取应该已经存在的输出文件

Posted

技术标签:

【中文标题】C ++读取应该已经存在的输出文件【英文标题】:C++ reading an output file which should already exist 【发布时间】:2016-11-16 04:58:15 【问题描述】:

如何提示用户输入输出文件名和IF not found 重试?

每次发生这种情况时,它都会创建输出文件;我不希望我只希望它读取输出文件。

do
cout <<"Type the name of the output file which will hold the simulation             results:\n";
cin >> nameoutputfile;
fileout.open(nameoutputfile);

if (fileout.fail())

cout << "ERROR: File "<< nameoutputfile <<" could not be opened\n";
tries[1]++;

if (tries[1] == trylimit)

cout << "ERROR: You exceeded maximum number of tries allowed\n";
cout << "while entering the input file name";
return 2;

while(fileout.fail());

这就是输出应该是什么

outputReadOnly.txt   
ERROR: File outputReadOnly.txt could not be opened    
Type the name of the output file which will hold the simulation results:  
outputReadOnly.txt  
ERROR: File outputReadOnly.txt could not be opened  
Type the name of the output file which will hold the simulation results:  
outputReadOnlyt.txt  
ERROR: You exceeded maximum number of tries allowed  
while entering the output file name 

【问题讨论】:

你的文件输出对象是什么类型的? 文件可以是任何东西,但必须存在 我的意思是你如何初始化变量? 【参考方案1】:

看起来您正在使用ofstream fileout;,默认情况下会覆盖现有文件。要实现所需的行为,您可以使用 fstream 并指定两个 in | out 标志:

fstream fileout;
do
  // Other code skipped for simplicity
  fileout.open(nameoutputfile, ios_base::in|ios_base::out);
  // ...
while(fileout.fail());

这是fstream.open使用的默认标志,所以你可以写:

fileout.open(nameoutputfile);

【讨论】:

不明白,但我试图做的是确保文件没有被创建但应该已经存在 @johnsmith 是的,我明白了。将您的信息流声明为fstream fileout 好的,但是如果文件不存在它会重新提示我该怎么做 是否可以编写代码来复制输出

以上是关于C ++读取应该已经存在的输出文件的主要内容,如果未能解决你的问题,请参考以下文章

读取 C 中的文件时输入正确但输出不正确

C语言写入文件,文件操作

如何用c读取文件

如何用c语言printf输出bmp图片的像素信息。

c语言:文件操作与字符处理

如何用C语言输出paraview能够直接读取的数据文件?