将文本写入文件,包括空格

Posted

技术标签:

【中文标题】将文本写入文件,包括空格【英文标题】:Writing text to a file, including spaces 【发布时间】:2012-11-01 18:15:52 【问题描述】:

我有以下 C++ 程序:

这个程序有两个问题。首先,如果用户在文本中使用空格,那么第一个空格之后的数据不会被保存。我该如何解决这个问题?

其次,我想在一个会话中附加的文本和文本文件中的另一个文本之间包含一个换行符。我如何指示程序这样做?谢谢:)

【问题讨论】:

【参考方案1】:

您可以使用getline 一次获取多行用户输入。至于会话之间的换行符,您不能在用户完成输入文本后向文件写入新行。这样下次打开文件时,您将在换行后开始。

【讨论】:

【参考方案2】:

在 write_to_file 函数中尝试使用 fwrite 而不是 fprintf。不过语法有点不同。

fwrite(data, size_t, count, fp);

这会将count个大小为size_t的项目从数据写入fp(文件指针)

【讨论】:

【参考方案3】:

第一个问题:不要使用 cin >> 文本。这将读取一个字符串,直到找到第一个空格。您可能想使用cin.getline。

第二个问题:你可以在将用户的输入写入文件后简单地 cout

如果您不希望文件末尾有换行符,则需要区分新文件和现有文件。为此,请修改您的 write_to_file 函数以接收第三个参数,该参数告诉它文件是否已存在。如果存在,则在将用户输入写入文件之前执行 cout

【讨论】:

Erm... 你能举个例子说明如何解决第二个问题。我不确定我是否理解正确:s 谢谢

以上是关于将文本写入文件,包括空格的主要内容,如果未能解决你的问题,请参考以下文章

如何剥离两个分隔符之间的文本,包括空行? [复制]

将文件名推送到数组,然后将它们写入文本文件

Cron作业无法执行写入文本文件的python脚本

写入文件,添加额外空间

如何将文本文件存储到带有空格的字符数组中?

如何从仅使用空格作为分隔符的文件中获取要写入的二维数组