检查文本文件是否按字母顺序排列

时间:2013-10-18 12:19:36

标签: c++

我有以下代码它扫描文本文件并获取几行,我正在尝试实现一些输入验证,因此如果用户输入了错误的文件,它会提示用户并关闭程序而不是崩溃。我目前添加了一些内容,但我正在尝试实现某些内容来检查文件是否按字母顺序排序...

我目前正在尝试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

1 个答案:

答案 0 :(得分: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; 
...
...
...
}