gpt4 book ai didi

c - 程序不返回扫描字符

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

因此,在我的类里面,家庭作业的一部分是拥有一个函数,该函数将返回已输入的字符。

我尝试创建此示例代码,但它没有按我希望的方式工作。

#include <stdio.h>     

char readCharacter();

int main(){
char x;

x = readCharacter();

printf("You inputted %c", x);

return 0;
}

char readCharacter(){
char z;
printf("Input character\n");

scanf("% c", &z);

return z;
}

我输入一个字符,我决定输入 w,程序告诉我该字符是一些奇怪的时髦字体。

我作业中的实际代码,或者更确切地说是其中的一个片段,是

#include <stdio.h>     // needed by printf, scanf()
#include <ctype.h> // needed by tolower()
#include <stdlib.h> // for exit()


double readNumber(char *prompt) {
double val;

printf("%s", prompt);

scanf("% lf", &val);

//if input is not a number, exit program
if (scanf("%lf", &val) != 1) {
printf("Invalid input.\n");
exit(1);
}

return val;
}


char readYesOrNo(char* prompt) {
char yn;

printf("%s\n", prompt);

scanf("% c", &yn);

return yn;
}



int main() {

double bonus;
char yesNo;



yesNo = readYesOrNo("Did the worker get a bonus ? (y/n) ");

if (yesNo == 'y' || yesNo == 'Y') {
bonus = readNumber("Enter bonus: ");
}
else {
bonus = 0;
}


return 0;
}

在实际的作业代码中,readYesOrNo函数甚至不等待我输入任何内容,它只是显示询问y/n响应的提示,然后继续执行下一行代码,而不等待用户输入并假设没有回应。

我不知道为什么这不起作用。

最佳答案

% c 不是有效的格式说明符。但 %c 可能就是您的意思。

这一行:

scanf("% c", &z);

需要是这样的:

scanf("%c", &z);

关于c - 程序不返回扫描字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40065605/

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