繁体   English   中英

读单词到文件c ++

[英]read word to file c++

我想从用户单词中获取并放置在文档单词是地方单词的地方。 我对getline有问题。 在新文件中,我没有任何新行。 当我在要写入文件的字符串中添加换行符时,该行被读取两次,并写入文件倍数(我认为bcoz我看到了这个新文件)

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
  string contain_of_file,bufor,word,empty=" ",new_line="\n";
  string conection;
  string::size_type position;
   cout<<"Give a word";
 cin>>word;
 ifstream NewFile; 
 ofstream Nowy1;
 Nowy1.open("tekstpa.txt", ios::app);
 NewFile.open("plik1.txt");
 while(NewFile.good())
{
     getline(NewFile, contain_of_file);
    cout<<contain_of_file;

   position=contain_of_file.find("Zuzia"); 
    if(position!=string::npos)
    {
    conection=contain_of_file+empty+word+new_line;
  Nowy1<<conection;
    }
   Nowy1<<contain_of_file;

}
Nowy1.close();
NewFile.close();

cin.get();
return 0;
}

这里的问题不是您的阅读。 直接,但是关于循环

不要循环while (stream.good())while (!stream.eof()) 这是因为直到尝试从文件之外读取后,才会设置eofbit标志。 这意味着循环将重复一个额外的时间,您尝试从文件中读取内容,但是std::getline调用将失败,但是您没有注意到它,而是继续进行,就好像什么都没发生一样。

相反做

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

还有一个不相关的提示:不需要可变conection ,您可以只做

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM