我需要创建一个在当前文件夹中写入文本文件的程序,该文本文件始终包含相同的信息,例如:
Hello,
This is an example of how the text file may look
some information over here
and here
and so on
所以我在考虑做这样的事情:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ofstream myfile("myfile.txt");
myfile << "Hello," << endl;
myfile << "This is an example of how the text file may look" << endl;
myfile << "some information over here" << endl;
myfile << "and here" << endl;
myfile << "and so on";
myfile.close();
return 0;
}
如果我的文本文件中的行数很少,那么问题是我的文本文件超过2000行,并且我不愿意为每行提供myfile << TEXT << endl;
格式。
是否有更有效的方法来创建此文本文件? 感谢。
答案 0 :(得分:1)
如果您有在同一文件中写入的问题,则需要使用追加模式。 即,您的文件必须像这样打开
ofstream myfile("ABC.txt",ios::app)
答案 1 :(得分:0)
如果你不关心&#39; \ n&#39;之间的差异。和std :: endl,然后你可以在你的函数之外创建一个包含你的文本的静态字符串,然后它就是:
myfile << str // Maybe << std::endl; too
如果您的文字非常大,您可以编写一个小脚本来格式化它,例如用&#34; \ n&#34;等更改每个换行符。
答案 2 :(得分:0)
您可以在C ++ 11中使用Raw字符串:
const char* my_text =
R"(Hello,
This is an example of how the text file may look
some information over here
and here
and so on)";
int main()
{
std::ofstream myfile("myfile.txt");
myfile << my_text;
myfile.close();
return 0;
}
或者,您可以使用一些工具为xxd -i
创建阵列答案 3 :(得分:0)
听起来你真的应该使用资源文件。我不会在这里复制和粘贴所有信息,但是这个网站上已经有一个非常好的Q&amp; A,在这里:Embed Text File in a Resource in a native Windows Application
或者,您甚至可以将字符串粘贴到头文件中,然后将头文件包含在需要的位置: (假设没有C ++ 11,因为如果你这样做,你可以简单地使用Raw来使事情变得更容易,但是已经发布了答案 - 不需要重复)。
#pragma once
#include <iostream>
std::string fileData =
"data line 1\r\n"
"data line 2\r\n"
"etc.\r\n"
;
如果您需要更复杂的字符,请使用std::wstring
并在L
前添加字符串。
您需要做的就是编写一个小脚本(或者甚至只使用Notepad ++,如果它是一次性的)用双反斜杠替换反斜杠,用反斜杠双引号替换双引号,并用\r\n"{line break}{tab}"
替换换行符。整理开始和结束,你就完成了。然后将字符串写入文件。