2016-10-31 4 views
-7

텍스트 파일에서 특정 단어를 찾아서 다른 단어로 바꾸고 파일에 테스트를 다시 쓰려면 어떻게해야합니까? (텍스트가 단락으로 구분 된 경우). 단어를 바꿀 수 있습니다. ; 그 단락이 분리 된 경우 .using string.find와 string replace.특정 단어를 파일의 다른 단어로 바꾸기

+0

아래에 제공되어있는 텍스트 파일의 모든 단락을 얻을 수 있습니다 'std :: vector ')을 제안한 다음 그것을 살펴 봅니다. – NathanOliver

+0

단락 분리 란 무엇을 정의합니까? –

답변

0

나는 한 단락의 단어를 바꾸는 것에 익숙하고 여러 단락이있는 텍스트에 대해서는 의문이 있음을 이해합니다.

"getline()"함수를 살펴보십시오. 그것은 "\ n"요소 (다음 라인)

그래서 당신은 문자열로 하나 개의 전체 단락을 얻기 위해이의 getline 기능을 사용할 수 있습니다 만날 때까지

이 기능은 텍스트 전체를 읽습니다. while 루프이의 getline 함수를 사용하여

당신이 (컨테이너의 일종으로 I을 파일을 읽어

예제 코드가

#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

검색 단어가 다음 단락의 시작 부분에 있다면 ..my 코드가 단어를 감지하지 못합니다. 이것은 내 코드입니다. 반면 ((fid.eof())!) \t \t \t { \t \t \t \t의 getline (FID, 데이터 ''); \t \t \t \t 경우 (searchKey.compare (데이터) == 0) \t \t \t \t \t { \t \t \t \t 횟수 카운트 = + 1; \t \t \t \t} – Jesty

+0

단락은 "\ n"로 끝납니다. –

+0

단락이 '\ n'으로 끝나고 다음 줄 이스케이프 시퀀스가됩니다. 파일을 읽으면 두 단락이 \ n .U와 연결되어 병합되어 \ nparagraph2로 시각화됩니다. 이것은 getline 함수가 단락 2의 시작 부분에 단어와 함께 \ n 문자를 포함한다는 것을 의미합니다. u가 공백으로 두 번째 단락을 시작하면 적절한 수를 얻을 수 있습니다. –

관련 문제