C ++将文本写入文件,如何多行

时间:2014-02-17 00:13:33

标签: c++ writetofile

如何将多行写入文件? ......这就是我所拥有的......另外,一些行包括如下文字:#import <Foundation/Foundation.h>我将如何做到这一点?下面的代码就是我现在所拥有的......

//Creates Config.h
        FILE * pFile;
        char *buffer = "//Empty Header File";
        char file [256];
        sprintf (file , "%s/Desktop/%s/Control.h",homeDir, game_name);
        pFile = fopen (file, "w+");
        fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
        fclose (pFile);

3 个答案:

答案 0 :(得分:1)

由于这是C ++,我建议您使用标准的IOStreams库,并使用具体的文件流类std::ifstreamstd::ofstream来处理文件。他们实现RAII来处理文件的关闭,并使用内置运算符和read() / write()成员函数分别执行格式化和未格式化的I / O.而且,它们与标准C ++字符串类std::basic_string的使用很好地融合在一起。

话虽如此,如果我们在C ++中正确实现它,它应该如下所示:

std::string path     = "/Desktop/";
std::string filename = homeDir + path + game_name + "/Control.h";

std::ofstream file(filename, std::ios_base::app);

这会处理打开文件,但正如您所说,您希望将多行写入文件。这很简单。只要您想要换行,只需使用'\n'

file << buffer << '\n';

如果您向我们提供有关您问题的更多信息,我将能够在答案中详细说明。但是在你这样做之前,上述就足够了。

答案 1 :(得分:0)

更改为

sprintf (file , "%s/Desktop/%s/Control.h\n",homeDir, game_name);

\ n - 是一个新行代码。

答案 2 :(得分:0)

在C ++中你会这样做:

ofstream fout("someplace/Control.h");
fout << "a line of text" << endl;
fout << "another line of text" << endl;

我遗漏了一些细节,比如如何构建文件名以及如何以“追加”模式打开文件,但是你应该尝试一次解决一个问题。