C++ 将word读取到文件c++;

C++ 将word读取到文件c++;,c++,fstream,C++,Fstream,我想从用户word中获取,并将其放入文件中,其中是certian word。 我对getline有问题。 在新文件中,我没有任何新行。 当我将换行符添加到我写入文件的字符串中时,这一行会被读取两次,然后写入到文件中(我想我看到了这个新文件) #包括 #包括 #包括 使用名称空间std; int main() { 字符串包含_文件的_,bufor,word,empty=“”,new_line=“\n”; 弦连接; 字符串::大小\类型位置; 库特沃德; ifstream新文件; 现在的潮流1; 现

我想从用户word中获取,并将其放入文件中,其中是certian word。 我对getline有问题。 在新文件中,我没有任何新行。 当我将换行符添加到我写入文件的字符串中时,这一行会被读取两次,然后写入到文件中(我想我看到了这个新文件)

#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串包含_文件的_,bufor,word,empty=“”,new_line=“\n”;
弦连接;
字符串::大小\类型位置;
库特沃德;
ifstream新文件;
现在的潮流1;
现在1.open(“tekstpa.txt”,ios::app);
打开(“plik1.txt”);
while(NewFile.good())
{
getline(NewFile,包含\u文件中的\u);

这里的问题不是你的阅读,而是你的循环

不要在(!stream.eof()时循环
while(stream.good())
while
。这是因为在您尝试读取文件之外的内容之前,
eofbit
标志不会被设置。这意味着循环将额外迭代一次,您尝试读取文件,但是
std::getline
调用将失败,但您不会注意到它,只要继续,就好像什么都没有发生一样

取而代之的是

while (std::getline(NewFile, contain_of_file)) { ... }

还有一个不相关的提示:不需要变量
连接
,只需

Nowy1 << contain_of_file << ' ' << word << '\n';

now1当我更改循环时,我有更糟糕的文件。现在某些单词被删除,它不是添加word write by user。它也不是换行符…@user3164700循环条件应该是正确的,现在你需要使用调试器来找出你在循环中还有什么其他问题。因此,循环中的这个语句执行getline并添加它以包含\u of_文件,如果这个循环看到它是文件的结尾,就结束工作,我是对的?@user3164700函数返回流。所有流对象都可以用作。
Nowy1 << contain_of_file << ' ' << word << '\n';