【发布时间】:2017-07-04 09:21:25
【问题描述】:
我陷入了一件非常尴尬的事情。代码如下:
#include <stdio.h>
#include <stdlib.h>
void processCommand(){
char *c = malloc(sizeof(char) * 128);
scanf("%s", c);
switch(*c){
case '!':
printf("Action");
break;
case '?':
printf("Question");
break;
default:
printf("Unknown Action");
break;
}
}
所以我想要的是,如果我输入的第一个字符与! 或? 不同,它应该只是说这是一个未知操作。所以它适用于输入其他字符,但每次我输入空格/制表符/什么都没有,它什么都不做?
【问题讨论】:
-
你在抱怨潮红吗?
-
你的意思是输入一些空格,然后按回车?好吧,scanf 会跳过空格,所以你什么都不读,一直在 scanf 中,直到你输入一些非空格......
-
在 Linux 平台的 GCC 编译器中运行良好。
-
附注:这里不需要
malloc,您可以简单地使用:char c[128];...
标签: c pointers switch-statement