Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的程序不能按需要执行(当输入一个Int后跟一个char时)_C - Fatal编程技术网

C语言中的程序不能按需要执行(当输入一个Int后跟一个char时)

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

在我下面的C代码中,我想知道当我提示(要求)用户首先输入
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我刚刚测试过,它的工作方式与我预测的一样。=)