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