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

我有以下 C++ 程序:

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

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

【问题讨论】:

    标签: c++ file save


    【解决方案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 谢谢
        猜你喜欢
        • 1970-01-01
        • 2018-05-22
        • 2020-07-03
        • 2013-02-22
        • 1970-01-01
        • 1970-01-01
        • 2011-08-20
        • 2018-10-06
        相关资源
        最近更新 更多