我正在将文件重命名为file1.txt
到"newFile.txt"
,但是当代码下次运行时。文件newFile.txt
已存在,因此名称为"file1.txt"
的新文件未重命名为"newFile.txt"
我想要的是如果"newFile.txt"
已经存在重命名"file1.txt"
应该覆盖"file1.txt"
是否可能?
这是我的代码
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
char data[100];
fstream outfile;
outfile.open("afile.dat" , ios::out );
cout << "Writing to the file" << endl;
cout << "Enter your name: ";
cin.getline(data, 100);
outfile << data << endl;
cout << "Enter your age: ";
cin >> data;
cin.ignore();
// again write inputted data into the file.
outfile << data << endl;
cout << "Reading from the file" << endl;
outfile >> data;
cout << data << endl;
outfile >> data;
cout << data << endl;
outfile.close();
// this is how i am renaming
std::rename("afile.dat" , "file2.txt");
return 0;
}
答案 0 :(得分:1)
您的代码只能使用一次文件并重命名。
第二次运行程序时,该目录中已存在文件banana.txt
,函数std::rename("afile.dat" , "banana.txt");
将返回错误代码。
因此,您需要检查具有新文件名的文件是否已存在,或者在函数std::rename
之后处理错误。
答案 1 :(得分:-2)
为什么不将新文件的内容输出到另一个文件中,然后删除已经存在的原始文件并将新文件重新命名为原始文件
cat newfile > newfile1 删除原始文件 ren newfile1 到原始文件名......我一直这样做......我必须使用你用来做的所有代码丢失一些东西