C语言中的程序不能按需要执行(当输入一个Int后跟一个char时)
在我下面的C代码中,我想知道当我提示(要求)用户首先输入C语言中的程序不能按需要执行(当输入一个Int后跟一个char时),c,C,在我下面的C代码中,我想知道当我提示(要求)用户首先输入int,然后再输入char,为什么它不起作用,我认为应该这样做 以下是我的代码: void square(int side, char fillCharacter); int main() { int inputVal; char inputChar; printf("Enter side value: "); scanf("%d", &inputVal); printf("Enter
int
,然后再输入char
,为什么它不起作用,我认为应该这样做
以下是我的代码:
void square(int side, char fillCharacter);
int main() {
int inputVal;
char inputChar;
printf("Enter side value: ");
scanf("%d", &inputVal);
printf("Enter any character: ");
scanf("%c", &inputChar);
square(inputVal, inputChar);
return 0;
}
void square(int side, char fillCharacter) {
int i, j;
for ( i = 1; i <= side; i++ ) {
for ( j = 1; j <= side; j++) {
printf("%c", fillCharacter);
}
printf("\n");
}
}
void-square(int-side,char-fillCharacter);
int main(){
int输入;
字符输入字符;
printf(“输入边值:”);
scanf(“%d”、&inputVal);
printf(“输入任何字符:”);
scanf(“%c”、&inputChar);
正方形(inputVal,inputChar);
返回0;
}
空方块(整数边,字符填充字符){
int i,j;
对于(i=1;i而言,%c”
格式说明符匹配空格字符,%d”
说明符保留在按下Enter/Return时插入的尾部'\n'
,因此需要指示scanf()
忽略带有%c'的空格字符
在说明符前面显式添加一个空格,如下所示
scanf(" %c", &inputChar);
/* ^_ explicit white space here */
阅读的,linux手册页,搜索%c”
说明符,看看我的意思。或者在%d之后添加空格,我想=)@Segmented No,在%d”
之后添加空格不起作用,因为问题是%c”
说明符,您可以从手册中看到。有人可能会认为,用户输入的空格分隔符应该在阅读时忽略空格格式说明符,这里是%s
,可能是%1s
。尽管我也会假设没有插入空格的额外输入是错误的,应该放弃,即r读取数组并将其遗忘。(或者,更好的做法是引起警告或错误。)@iharob是的,但文件是相同的(stdin),因此它应该是等效的。@iharob我刚刚测试过,它的工作方式与我预测的一样。=)