2013-10-18 32 views
0

嘿我想添加一些驗證到我的程序,以確保正確的文件加載,我的驗證是基於字典文件,我試圖實現的東西,確保正確類型的單詞是文件,如名詞,動詞,我寫這個...執行一些驗證...卡住

    if (!type.compare("n") == 0) { 
        cout << "\nType is invalid please check file.\n" << endl; 
        system("Pause"); 
       } 

我必須爲每種類型的字的IF語句,所以一個動詞,副詞,形容詞等,但從它的外觀來看,它檢查所有組合的每種類型,每個IF語句之間的差異是動詞的類型比較,它將是if (!type.compare("n") == 0)等等。

(例子)

a 
the letter a 
n 
(blankline) 

這是佈局,worddefinitiontypeblank線,從它的它的檢查,看看長相是所有類型的組合匹配... nvadv等...我想改變這個,所以它只搜索任何一種組合。下面是我已經完成的全部功能。

+1

不要使用'系統( 「暫停」)'在這樣的背景下。只需退出應用程序。 – RedX

回答

1

由於operator precedence,您的比較存在問題。表達

!type.compare("n") == 0 

是由編譯器看作是

(!type.compare("n")) == 0 

這意味着,當type"n"然後表達式爲假,因爲!type.compare("n")是「真」,並且不以任何方式等於零。

而是做

if (type.compare("n") != 0) 
{ 
    ... 
} 
else // No need to do `if (type.compare("n") == 0)` 
{ 
    ... 
}