2013-03-28 146 views
0

我正在通過objective-C進行scanf倒計時,所以程序會從您輸入的數字中倒數。但是,代碼中存在令人討厭的語義錯誤:數據參數未被格式字符串使用。此外,該程序不倒計時,只要輸入一個數字,它就會將輸出顯示爲零。Scanf倒計時

#import <Foundation/Foundation.h> 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 

     int x,number; 

     NSLog(@"please enter a number:"); 
     scanf("i", &number); 
     for (x = number; x>=0; x--) 
      NSLog(@"%i",x); 
    } 
    return 0; 
} 

回答

4

你需要傳遞%i,不iscanf格式字符串。

當您通過i時,格式字符串具有零格式說明符,導致語義分析器產生警告。這也是爲什麼沒有任何東西被輸入到你的number變量中的原因,所以倒數也不會發生。

+0

謝謝,我很欣慰,它只是一個簡單的錯字在語法 – user1706978 2013-03-28 01:40:48

+0

@ user1706978不客氣!如果您嘗試瞭解決方案並且適用於您,請考慮通過單擊複選標記大綱來接受答案。這會向其他人指出喲不再尋找改進的解決方案,併爲堆棧溢出贏得新徽章。 – dasblinkenlight 2013-03-28 01:42:56