2016-08-25 3 views
0

scanf_sは文字値を変数に書き込まない。私がuser_inputの値を読むためにブレークポイントを置くと、user_inputは文字値の代わりに0の値を持ちます。 user_inputを整数として宣言すると、scanf_sはint値を正しく渡します。誰かが私がなぜchar値を書くときにscanf_sを間違って使っているのか教えてもらえますか?scanf_sが文字値を書き込まない

char user_input; 
printf("Enter a uppercase letter:"); 
scanf_s(" %c", &user_input, 1); 
printf("Input letter:%c\n", user_input); 

あなたがUSER_INPUT見ることができます:私は2013

#include <stdio.h> 
    int main(void) 
    { 
     char row, space, letter, user_input; 
     printf("Enter a uppercase letter:"); 
     scanf_s(" %c", &user_input); 

     for (row = 'A'; user_input >= row; ++row){ 
      for (space = user_input - row; space >= 1; --space){ 
       printf(" "); 
      } 
      for (letter = 'A'; row >= letter; letter++){ 
       printf("%c", letter); 
      } 
      for (letter = row -1; letter >= 'A'; letter--) { 
       printf("%c", letter); 
      } 
      printf("\n"); 
     } 
     getchar(); 
     getchar(); 
     return 0; 
    } 

答えて

0

scanf_s機能は、例えば、s.For%cと%のためのaddtionパラメータを必要とするのVisual Studioを使用しています。 注:scanf_sは、char型またはchars型の境界をチェックできます。

+0

ありがとう!!!!完璧に今... – 1fastk

関連する問題