2012-11-06 37 views
2

我有串行數據,我想比較一個特定的字節和字母「G」。C++比較一個字節和一個字母

LPtype是從串口讀取的一個字節。

if (LPtype == "G") 
{ 
    doThis(); 
} 

我得到以下錯誤:

C++禁止指針和整數之間的比較

什麼是傳入再見比較字母G的正確方法? (或任何其他字母)

+3

讓我們看看LPtype'的'類型。 – andre

+0

'LPtype是一個字節'是嗎?真?似乎是一個字節的奇怪名稱。 –

+0

無論類型'LPtype'是否有'operator ==(const char *)'?如果是這樣,它在這裏做你想做的事情嗎? –

回答

6
LPtype == 'G' 

單數的引號。但LP通常前綴指針類型,在這種情況下,你應該取消對它的引用

*LPtype == 'G' 

但是,如果你確定LPtype確實是一個字節的值,然後

LPtype == 'G' 

應該工作。問題是,"G"具有類型const char[2],而不是整數類型,而'G'有類型char是整數類型

+1

我不認爲鼓勵OP進行瘋狂猜測是一個特別負責任的事情,Armen,即使你只是通過自己猜測而隱含地做它;) –

+2

「但是LP通常是指針類型的前綴,在這種情況下,你應該解引用它:'* LPtype =='G''「 - 在這種情況下,編譯器不會抱怨整數和指針比較... – 2012-11-06 19:10:07

+0

它是引號,謝謝,我沒有做太多的C++,主要是VB從我這裏犯了很多錯誤。至於LPtype,我輪詢和LP是爲最後民意測驗,類型是民意調查的類型,不知道這會導致問題 –

1

你可以這樣做:

LPtype == 'G'