0

テキストファイルをスキャンして数行を取得する次のコードがあります。入力検証を実装しようとしているため、ユーザーが間違ったファイルを入力すると、ユーザーにプロンプ​​トが表示され、クラッシュする代わりにプログラムが閉じます。現在、いくつか追加しましたが、ファイルがアルファベット順にソートされているかどうかを確認するために何かを実装しようとしています...

私は現在試しましsort(word.begin(), word.end()); たが、これは単語を並べ替えます...単語を実際に並べ替えたくはありません。単語がアルファベット順に並んでいるかどうかを確認したいだけです。そうでない場合は、プログラムを閉じます...どうすればこれを達成できますか?

ファイルのレイアウトは

word

definition

type

blankline

繰り返す...

例えば

a
the letter a 
n

b
the letter b
n

c  
the letter c  
n

...end
4

1 に答える 1

3

単語がアルファベット順に並べられているかどうかだけを確認したい場合は、1 番目と 2 番目の文字列を確認してみませんか? それらが順番に並んでいる場合は、2 番目と 3 番目に移動します... というように、そのうちの 1 つが注文されないか、ファイルの終わりになるまで続きます。最後までたどり着いたら、それは注文されたことを意味します..

string word, definition, type, blank, aux;

while (getline(dictionaryFile, word) &&
        getline(dictionaryFile, definition) &&
        getline(dictionaryFile, type) &&
        getline(dictionaryFile, blank)) {

if (strcmp(aux.c_str(), word.c_str()) > 0) return;
    else aux=word; 
...
...
...
}
于 2013-10-18T12:27:43.773 に答える