gpt4 book ai didi

c - scanf 未按预期工作

转载 作者:行者123 更新时间:2023-11-30 16:40:02 25 4
gpt4 key购买 nike

我尝试在 ubuntu 15.10 中执行以下简单代码,但代码的行为比预期奇怪

#include<stdio.h>
int main(){
int n,i=0;
char val;
char a[20];

printf("\nEnter the value : ");
scanf("%s",a);
printf("\nEnter the value to be searched : ");
scanf("%c",&val);

int count=0;
for(i=0;i<20;i++){
if(a[i]==val){
printf("\n%c found at location %d",val,i);
count++;
}
}
printf("\nTotal occurance of %c is %d",val,count);
return 0;
}

output:
--------------------------
Enter the value : 12345678
Enter the value to be searched :
Total occurance of is 0

获取要搜索的值的第二个 scanf 似乎不起作用。其余代码在第一次 scanf 之后执行,无需第二次获取输入。

最佳答案

在第一个scanf()之后,在每个scanf()中,在格式化部分,放置一个空格

所以改变这个

scanf("%c",&val);

进入此

scanf(" %c",&val);

原因是,scanf() 在看到换行符时返回,并且当第一次 scanf() 运行时,您键入输入并按 Enter 键。 scanf() 消耗您的输入,但不消耗剩余的换行符,因此,后面的 scanf() 消耗剩余的换行符。

在格式部分中放置空格会消耗剩余的换行符。

关于c - scanf 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818194/

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