3つの異なる関数から入力を受け取る単純なプログラムがあります.2つはintを返し、1つはcharを返しますが、3番目の関数は何らかの理由でそのステップを完全にスキップします。
#include <stdio.h>
int get_height();
int get_length();
char get_symbol();
void draw_rectangle(int h, int l, char s);
int main () {
int h, l;
char s;
h = get_height();
l = get_length();
s = get_symbol();
draw_rectangle(h, l, s);
return 0;
}
int get_height() {
int i;
printf ("Please enter the height of the rectangle: ");
scanf ("%d", &i);
return i;
}
int get_length() {
int i;
printf ("Please enter the length of the rectangle: ");
scanf ("%d", &i);
return i;
}
char get_symbol() {
char i;
printf ("Please enter the symbol for the rectangle: ");
scanf ("%c", &i);
return i;
}
void draw_rectangle(int h, int l, char s) {
printf ("%d %d %c", h, l, s);
}
これを実行すると、高さと長さをスキャンできますが、文字をスキャンするプロンプトが出力されますが、ユーザー入力がスキップされ、h と l の値が出力されますが、s は出力されません。ここで何が欠けていますか?