我正在寻找创建一个文件,然后打开它并重写它。
我发现我可以通过简单地创建一个文件:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream outfile ("test.txt");
outfile << "my text here!" << endl;
outfile.close();
return 0;
}
虽然这可以创建测试文件,但我无法打开文件然后进行编辑。即使在创建文件后,此(下面)也不起作用。
outfile.open("test.txt", ios::out);
if (outfile.is_open())
{
outfile << "write this to the file";
}
else
cout << "File could not be opened";
outfile.close;
答案 0 :(得分:1)
如果&#34;不起作用&#34;你的意思是文本被覆盖而不是附加,你需要指定std::ios::app
作为打开调用的标志之一,让它附加更多数据而不是覆盖所有内容。
outfile.open("test.txt", ios::out | ios::app);
以下示例适用于我:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream outfile ("test.txt");
outfile << "my text here!" << endl;
outfile.close();
outfile.open("test.txt", ios::out | ios::app );
if (outfile.is_open())
outfile << "write this to the file" << endl;
else
cout << "File could not be opened";
outfile.close();
return 0;
}
生成以下文本文件:
my text here!
write this to the file
答案 1 :(得分:0)
你也可以用FOPEN做到这一点。有些编译器会注意到它的功能是OBSOLETE或DEPRECATED,但对我来说它的工作正常。
/* fopen example */
#include <stdio.h>
int main ()
{
FILE * pFile;
pFile = fopen ("myfile.txt","w");
if (pFile!=NULL)
{
fputs ("fopen example",pFile);
fclose (pFile);
}
return 0;
}