c - 我的程序不接受 scanf 命令的输入
问题描述
#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(" %c",&c);
或者您需要再写 1 个 getchar() 来使用剩下的换行符scanf("%d", &a);
推荐阅读
- jquery - 如何在ajax jquery中给出基本url
- java - 检查给定的字符串是否可以由给定的一组字符串组成
- intellij-idea - 如何在 IntelliJ 中以制表符宽度直观地换行?
- scheme - Racket - 需要整个目录的文件
- android - 寻找 3 个或更多地点之间的最短路线(谷歌地图路线)
- excel - 如何通过 POST VBA Httprequest 传递登录名和密码?
- python - 如何在 python 中生成随机稀疏厄米特矩阵?
- ios - 如何区分 tableViewCell 中的按钮,在 tableView 中重复使用?
- twitter-bootstrap - 为什么我的响应式 Web 模板在手机上不起作用?
- html - 单击时如何获取标签以检查无线电输入?