gpt4 book ai didi

c - scanf 不会指定 c 中的 char,strcmp 搞乱了我

转载 作者:行者123 更新时间:2023-11-30 16:37:00 24 4
gpt4 key购买 nike

这是项目中的一个较小的部分,我正在尝试向用户询问一个字符。

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 madepointer from integer without a cast”。

我尝试使用“char* sortchoice”代替,但我的 scanf 不会执行任何操作,并且循环会经过两次,然后才让我输入字符。

我猜我有不止一个问题需要解决,我确实尝试过将解决方案粉碎在一起,但对我来说仍然没有任何意义。

任何解释表示赞赏!

最佳答案

使用 sortChoice == 'n' 等简单比较来代替 strcmp()

strcmp() 不适用于比较单个字符。

关于c - scanf 不会指定 c 中的 char,strcmp 搞乱了我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151072/

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