C++でテキストファイルを読みvector配列に格納した単語に、二分探索を適用して、指定された単語を検索するプログラムを作成しています.
辞書順にソートを行った後に、探索単語の受け付けと探索の実行を繰り返すループを入れたいです.探索は終了指示マーク($$)を受け付けるまで繰り返します.
コードを以下のように修正したのですが,
if (!inFile) {
cout << "入力ファイルを開けません" << endl;
return;
}
のreturnの部分に「'main': 関数が値を戻すように宣言されていますが、関数定義に 'return' ステートメントがありません」というエラーが出ます.エラーを消すには,コードをどのように修正したらよいでしょうか?
他にもおかしいところがあったら教えてください.
よろしくお願いします.
C++
1#include <iostream> 2#include <fstream> 3#include <string> 4#include <vector> 5#include <algorithm> 6using namespace std; 7 8//メイン関数 9int main() { 10 11 ifstream inFile; //入力ファイル 12 string word; //単語 13 vector<string> vector;//vector配列 14 15 //入力ファイルを開く 16 inFile.open("test.txt"); 17 18 // 入力ファイルが開けなければ終了する 19 if (!inFile) { 20 cout << "入力ファイルを開けません" << endl; 21 return; 22 } 23 24 //ファイルから単語を読み込む 25 inFile >> word; 26 27 //ファイルの末尾でなければ、以下の処理を繰り返す 28 while (!inFile.eof()) { 29 30 //単語を格納する 31 vector.push_back(word); 32 33 //新しい単語を読み込む 34 inFile >> word; 35 } 36 37 //vector配列に格納した単語を、辞書順にソートする 38 sort(vector.begin(), vector.end()); 39 40 string a; 41 42 while ("$$"==a ) { 43 cout << "探索単語?"; 44 cin >> a; 45 binary_search(vector.begin(), vector.end(), a); 46 47 if(true){ 48 cout << "存在する" << endl; 49 } 50 else { 51 cout << "存在しない" << endl; 52 } 53 } 54}
回答3件
あなたの回答
tips
プレビュー