我编写了一些代码,以便在C ++中对文件进行双倍空间处理,目前程序接收一个文件并返回一个不同的文件,即双倍行距。我希望程序将相同的文件返回到文件目录。我在这一点上非常漂亮,我需要使用一个临时文件,这很好,但我想在程序结束时最终返回相同的文件(但是用户间隔为双倍)。任何帮助,将不胜感激。这是我到目前为止的代码。
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
int main( )
{
ifstream fin;
ofstream fout;
fin.open("story.txt");
if (fin.fail( ))
{
cout << "Input file opening failed.\n";
exit(1);
}
fout.open("numstory.txt");
if (fout.fail( ))
{
cout << "Output file opening failed.\n";
exit(1);
}
char next;
int n = 1;
fin.get(next);
fout << n << " ";
while (! fin.eof( ))
{
fout << next;
if (next == '\n')
{
fout << endl;
}
fin.get(next);
}
fin.close( );
fout.close( );
return 0;
}
答案 0 :(得分:0)
按照建议,创建一个临时文件,然后,只有在处理成功时,remove
现有文件和rename
临时文件。
顺便说一句,将using namespace std
放在每个程序的顶部是a bad habit,你应该做好避免。
答案 1 :(得分:0)
最简单的解决方案:删除输入文件并重命名新文件(remove和rename)
更好的解决方案:打开读取和写入的第一个文件(fstream)并用stringstream缓冲区替换内容,甚至不创建临时文件(也更快) )。
你有很多选择。