int main() {
void * p;
p = calloc(100,sizeof(char)) ;
scanf("%s",p) ;
return 0 ;
}
上記のコードは完全に機能します。しかし、私は他の可能な方法があるかどうかを知りたいですか? cで対応するデータ型変数を使用せずにchar、int、floatなどを取得する。どのようにしてCで文字変数を使用せずにユーザーから文字入力を取得できますか?
int main() {
void * p;
p = calloc(100,sizeof(char)) ;
scanf("%s",p) ;
return 0 ;
}
上記のコードは完全に機能します。しかし、私は他の可能な方法があるかどうかを知りたいですか? cで対応するデータ型変数を使用せずにchar、int、floatなどを取得する。どのようにしてCで文字変数を使用せずにユーザーから文字入力を取得できますか?
最も基本的な方法は、getchar
を使用することです:
int main() {
int c = getchar();
}
一度にstdin
1文字から読み込みます。次に、整数、浮動小数点数、文字列などを解析する独自の構文解析ロジックを記述できます。
私のdownvoteではありませんが、関数の戻り値の型は 'char'ではなく' int getchar() 'です。 –
ありがとうございましたTamaz Zahola –
@WeatherVaneフェアポイント! 'getchar'は' char'の範囲外にある文字がもうないとき 'EOF'を返します。 –
なぜですか? [xy problem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように見える – Unimportant
コンパイラが生成されたときに、どうすれば完全に動作するか警告C4477: 'scanf ':フォーマット文字列'%s 'は' char * '型の引数を必要としますが、可変引数1は' void * '型ですか? –