2013-02-21 80 views
0

我正在使用scanf從文件中獲取變量的值。它應該繼續從文件中讀取,直到遇到%。如何比較%如何處理帶有%d格式說明符的字符?

scanf("%d",&a); 

if (a=='$') terminate ; ?? 

它不工作,可以採取什麼問題解決?

+1

你嘗試過''==?還有'a ==%'。 – 2013-02-21 05:01:20

回答

0

你如果條件不與$

改變這種比較a
if (a =='$')

  • =賦值運算符
  • ==相等運算

編輯
做同樣比較%
if(a=='%')

2

你不能。 %d將不會轉換%$。換句話說,它不會放任何東西(更不用說你應該通過&a)。當轉換失敗時,它將留在stdin上,所以你仍然可以隨後閱讀它。

要知道轉換是否成功,請檢查scanf()的返回值。它返回成功的cnversions的數量。

if (1 != scanf("%d", &a)) { 
    char c = 0; 
    scanf(" %c", &c); 
    if (c == '%' || c == '$') { 
    /* done */ 
    } 
} 
0

嘗試它作爲一個==「$」或儲值其中U在整數閱讀和檢查