gpt4 book ai didi

c - 我的程序不接受 scanf 命令的输入

转载 作者:行者123 更新时间:2023-11-30 19:59:30 25 4
gpt4 key购买 nike

#include <stdio.h>

void aeins(){

int x;
unsigned int y;
double z;

printf("Geben sie einen ganze Zahl ein: ");
scanf("%d", &x);
printf("Geben sie eine natürliche Zahl ein: ");
scanf("%u", &y);
printf("Geben sie eine reelle Zahl ein: ");
scanf("%lf", &z);

printf("Die dritte Potenz von %d ist %d", x, x*x*x);
printf("Die dritte Potenz von %u ist %u", y, y*y*y);
printf("Die dritte Potenz von %lf ist %lf", z, z*z*z);

}

void azwei(){

printf("Geben sie einen Character ein: ");
char c = getchar();
printf("Das nachfolgende Zeichen lautet: %c und der ASCII-Wert ist: ", c+1, c+1);

}

int main (void){

int a;
int b = 1;

while(b){
printf("Welche Aufgabe soll gezeigt werden? ");
printf("\n(1) Aufgabe 1 \n(2) Aufgabe 2\n");
scanf("%d", &a);

switch(a){
case 1: aeins();
b = 0; break;
case 2: azwei();
b = 0; break;
default: printf("Falsche Eingabe!\n"); break;
}
}
}

这是我的程序,这是我的输出:

Welche Aufgabe soll gezeigt werden?
(1) Aufgabe 1
(2) Aufgabe 2
2
Geben sie einen Character ein: Das nachfolgende Zeichen lautet: und der ASCII-Wert ist:
Process returned 0 (0x0) execution time : 2.172 s
Press any key to continue.

如您所见,我的程序忽略了 getchar 命令。我已经用 scanf 命令尝试过,但它也不起作用。在函数 aeins 中,一切都起作用。如果这对您有帮助的话,我会说我是一个初学者到中级 C 程序员。

最佳答案

scanf 有一个有趣的属性,它会在输入缓冲区中留下终止输入的换行符,因此您需要在继续任何其他输入之前使用它。

只需在 scanf("%d", &a); 之后添加一个 getchar() 调用,就可以了。

关于c - 我的程序不接受 scanf 命令的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58682627/

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