gpt4 book ai didi

c - 第三个功能不会运行 scanf

转载 作者:行者123 更新时间:2023-12-02 22:20:09 24 4
gpt4 key购买 nike

我有一个简单的程序,它接收来自 3 个不同函数的输入,2 个返回整数,1 个返回一个字符,但第三个函数由于某种原因没有扫描,它完全跳过了这一步。

#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。我在这里缺少什么?

最佳答案

之前的 scanf 在输入缓冲区中留下一个换行符,该换行符被:

scanf ("%c", &i);

只需将其更改为:

scanf (" %c", &i);

注意空间。这将告诉 scanf 忽略所有空格。

关于c - 第三个功能不会运行 scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com