这是项目中较小的一段,我正在尝试向用户询问一个字符。
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使得指针来自整数而没有强制转换”。
我尝试使用“char * sortchoice”而不是然后我的scanf将不会做任何事情,并且在让我输入字符之前循环经过两次。
我猜我要解决的问题不止一个,而且我真的试过粉碎解决方案,但它对我来说仍然没有任何意义。
感谢任何解释!
答案 0 :(得分:0)
而不是strcmp()
使用简单比较,例如sortChoice == 'n'
。
strcmp()
不用于比较单个字符。