我在 C++ 中有以下程序:
这个程序有两个问题。首先,如果用户在文本中使用空格,那么第一个空格之后的数据不会被保存。我怎么解决这个问题?
其次,我想在一个会话中附加的文本和文本文件中的另一个文本之间包含一个换行符。我如何指示程序这样做?谢谢 :)
在 write_to_file 函数中尝试使用 fwrite 而不是 fprintf。虽然语法有点不同。
fwrite(数据,size_t,计数,fp);
这会将大小为 size_t 的项目的计数从数据写入 fp(文件指针)
第一个问题:不要使用 cin >> 文本。这将读取一个字符串,直到找到第一个空格。您可能想使用cin.getline。
第二个问题:在将用户的输入写入文件后,您可以简单地 cout << endl 。
如果您不希望文件末尾有换行符,则需要区分新文件和现有文件。为此,请修改您的 write_to_file 函数以接收第三个参数,该参数告诉它文件是否已存在。如果存在,则在将用户输入写入文件之前执行 cout << endl。
您可以使用getline
一次获取多行用户输入。至于会话之间的换行符,您不能在用户完成输入文本后向文件写入新行。这样,下次打开文件时,您将在换行后开始。