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

如果您只想检查单词是否按字母顺序排列,为什么不检查第一个和第二个字符串?如果它们是有序的,你就去你的第二个和第三个......依此类推,直到其中一个没有被订购或文件结束。如果你做到了最后,这意味着他们被订购了..

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 回答