gpt4 book ai didi

c - 为什么我在scanf上遇到问题并得到?

转载 作者:行者123 更新时间:2023-12-05 01:30:06 25 4
gpt4 key购买 nike

当我尝试使用scanf并获取时,遇到了麻烦,我需要放两次,如果我在程序终止后放它,这是一项家庭作业,我必须在那些地方使用这些功能。

代码 :

int main()  
{
int i=0,operation=0;
char str[100];

printMenu();

scanf("%d",&operation);

switch (operation)
{
case 1:
printf("Please, enter your sentence >");
gets(str);
gets(str);

if (checkChars(str))
inputSent(str);
else
printf("ERROR: Incorrect data, try again.");

break;
}

return 0;
}

最佳答案

因此,我们有一个stdin数据流。这是您在终端上编写的输入。

调用scanf时,它仅读取您写入的十进制数字。它之后不读取换行符。因此,您需要两次调用gets,因为第一个调用仅看到'\n',而第二个看到您的实际数据。

要解决此问题,我建议您在执行操作时使用gets读取整行,然后使用sscanf进行操作。

例如:

printMenu();

gets(str)
sscanf(str, "%d", &operation);

switch (operation) {

关于c - 为什么我在scanf上遇到问题并得到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4250726/

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