2017-01-06 2 views
-1
int main() { 
    void * p; 
    p = calloc(100,sizeof(char)) ; 
    scanf("%s",p) ; 
    return 0 ; 
} 

上記のコードは完全に機能します。しかし、私は他の可能な方法があるかどうかを知りたいですか? cで対応するデータ型変数を使用せずにchar、int、floatなどを取得する。どのようにしてCで文字変数を使用せずにユーザーから文字入力を取得できますか?

+1

なぜですか? [xy problem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように見える – Unimportant

+0

コンパイラが生成されたときに、どうすれば完全に動作するか警告C4477: 'scanf ':フォーマット文字列'%s 'は' char * '型の引数を必要としますが、可変引数1は' void * '型ですか? –

答えて

0

最も基本的な方法は、getcharを使用することです:

int main() { 
    int c = getchar(); 
} 

一度にstdin 1文字から読み込みます。次に、整数、浮動小数点数、文字列などを解析する独自の構文解析ロジックを記述できます。

+0

私のdownvoteではありませんが、関数の戻り値の型は 'char'ではなく' int getchar() 'です。 –

+0

ありがとうございましたTamaz Zahola –

+0

@WeatherVaneフェアポイント! 'getchar'は' char'の範囲外にある文字がもうないとき 'EOF'を返します。 –

関連する問題