2013-07-16 22 views
1

首先,我的代碼:Ç - 與scanf_s錯誤的打印字符在Visual Studio 2012

#include <stdio.h> 

int main(){ 
    int a; 
    char b; 

    printf("Insert number: "); 
    scanf_s("%i",&a); 
    getchar(); 

    printf("Insert character: "); 
    scanf_s("%c",&b); 

    printf("Number: %i\n",a); 
    printf("Character: %c\n",b); 

    getchar(); 
    getchar(); 
    return 0; 
} 

我用scanf_s不過的Visual Studio 2012說錯誤與scanf函數。好吧,int沒有問題,但問題是當我可以使用char。

保存字符的變種,但是當我調用printf這個變種,不顯示任何東西,爲什麼呢?

我在linux上檢查並完美工作。

對不起我的英語:)

+0

代碼編譯並正確執行我與Visual Studio 2012年是否確實已經發布了正確的代碼?如果你有,你可以退出你的問題,注意你看到的編譯器或運行時錯誤嗎?如果您遇到運行時錯誤,請說明您提供的輸入,您收到的輸出以及您的預期輸出。 – simonc

+0

我沒有錯誤代碼,程序運行正常,但是當我用var char調用printf函數時,不顯示結果。 截圖:http://i.imgur.com/2Ncz0bf.png – arwayts

+0

我可以重現這個如果I型5 [空格]爲號[輸入]。你是否在數字之前或之間輸入任何內容並進入? – simonc

回答

3

您必須scanf_s指定輸入字符串或字符的大小。

變化

scanf_s("%c",&b); 

scanf_s("%c", &b, 1); 
+0

謝謝!完美的工作:) – arwayts