사용자가 입력 한 문장을 파일의 단어와 비교하는 프로그램을 작성하고 있습니다. 문장에있는 단어가 파일에서 발견되면 프로그램에서 알려주길 원합니다.stringstream 및 ifstream을 사용하여 파일의 단어와 사용자 입력을 비교하십시오.
getline을 사용하여 사용자 입력 문장을 얻은 다음 istringstream을 사용하여 문장을 단어로 잘라 내고 각 단어를 파일의 모든 단어와 비교합니다. 내 접근 방식은 while 루프를 사용하여 파일의 모든 단어를 반복하고 사용자가 입력 한 문장의 현재 단어를 파일의 현재 단어와 비교하는 것입니다. 현재 파일 단어가 현재 문장 단어와 동일하면 bool을 true로 설정하고, 그렇지 않으면 파일의 다음 단어로 건너 뛰고 문장 단어를 다음 파일 단어와 비교합니다.
istringstream 및 ifstream을 모두 while 루프의 다음 단어로 건너 뛰는 방법을 모르겠습니다. 어떻게 다음 단어로 반복 할 수 있습니까?
편집 : 벡터, 배열 등을 사용하지 않고이 작업을 수행해야합니다. 초기 접근법은 벡터를 사용하는 것이지만 허용되지 않았습니다.
int main() {
string sentence;
string fileWord;
cout << "Input your sentence : " << endl;
getline(cin, sentence);
istringstream iss(sentence);
string sentenceWord;
ifstream adjectiveFile;
adjectiveFile.open("/project1.cpp/words/adjectives");
while(iss >> sentenceWord && adjectiveFile >> fileWord) {
if (sentenceWord == fileWord) {
cout << "The word " << sentenceWord << " is in the file" << endl;
bool adjectiveInSent = true;
} else {
}
}
adjectiveFile.close();
return 0;
}
당신이 그렇게 할 수 없습니다. 전체 파일을 std :: set으로 읽어 들인 다음 문자열 스트림에서 추출한 단어를 찾으십시오. –
'bool adjectiveInSent = true;는 무엇을해야합니까? –
나중에 프로그램에서 사용자 입력 문장이 명사, 동사, 명사 등 특정 방식으로 구성되어 있는지 확인해야합니다. –