【发布时间】:2018-01-08 13:14:13
【问题描述】:
这是一个项目中的一小部分,我正在尝试向用户询问一个字符。
void listBeer(int noRows) {
int endlessLoop = 1;
char sortChoice;
system("cls");
while(endlessLoop == 1)
{
printf("Do you want to sort by name(n) or by product number(p)?\n");
scanf("%c", &sortChoice);
printf("kossan hoppade!\n");
if(strcmp(sortChoice, "n") == 0 || strcmp(sortChoice, "N") == 0|| strcmp(sortChoice, "p") == 0 || strcmp(sortChoice, "P") == 0 ) {endlessLoop = 0;}
else {printf("Please answer with n/N for name sorting or p/P\n");}
}
在比较过程中控制台崩溃,错误代码是“strcmp make pointer from integer without a cast”。
我尝试改用“char* sortchoice”,但是我的 scanf 不会做任何事情,并且在让我输入 char 之前,循环会通过两次。
我猜我要解决的问题不止一个,我确实尝试过将解决方案组合在一起,但对我来说仍然没有任何意义。
感谢任何解释!
【问题讨论】:
-
是的,但我从 strcmp 切换到下面推荐的 flaviodesousa。
标签: c while-loop scanf