2016-10-31 31 views
-7

テキストファイル内の特定の単語を見つけてその単語を別の単語に置き換えてテストをファイルに書き戻すにはどうすればよいですか? ;その段落が分離されていない場合は使用しますstring.findとstringを置き換えます。特定の単語をファイル内の別の単語に置き換えます

+0

の下に提供されているコンテナのいくつかの並べ替えにファイルを読む(I 'std :: vector ')とそれを見てください。 – NathanOliver

+0

段落を区切ることは何を意味するのかを定義します。 –

答えて

0

あなたが理解する限り、1つの段落内の単語を置き換えるのに慣れていて、複数段落のテキストについては疑問があると思います。

"getline()"関数を見てください。それはあなたが文字列に1段落全体を取得するには、このgetline関数を使用することができます「\ nの」要素(次の行)

に遭遇するまで

この機能は、全体のテキストを読み込みます。 whileループでは、このgetline関数を使用して

は、テキストファイルからのすべての段落を取得するために

を可能にするサンプルコードは、

#include<iostream> 
#include<string> 
#include<fstream> 
using namespace std; 
int main() 
{ 
    string a,b; 
    a="he"; 
    b="she"; 
    fstream text("text.txt"); 
    string line; 
    while (!text.eof()) 
    { 
     getline(text,line); 
     cout<<line<<endl; 
     //This string "line" is basically a string containing your first paragraph 
     //ADD your find and replace code here for the string "line". 
     //The second time the while loop executes the string "line" will contain the second paragraph and so on.. 
    } 
} 
} 
+0

検索語が次の段落の先頭にある場合は、コードでは単語が検出されません。これは自分のコードです。一方、((fid.eof())!) \t \t \t { \t \t \t \tのgetline(FID、データ、」「)。 (searchKey.compare(データ)== 0)であれば \t \t \t \t \t \t \t \t { \t \t \t \t \tカウント=カウント+ 1。 \t \t \t \t} – Jesty

+0

パラグラフは "\ n"で終了します。 –

+0

段落は '\ n'で終わります。これは次の行エスケープシーケンスです。ファイルuを読むと、\ n .Uで連結された2つの段落が段落\ nparagraph2として視覚化できます。これはgetl​​ine関数が段落2の先頭に\ n文字を含んでいることを意味しています.Uを始めると、2番目の段落にスペースが入ります。 –

関連する問題