c语言-为什么scanf那条于句老是被跳过去

问题描述

为什么scanf那条于句老是被跳过去

大神,怎么办?性别还没输呢,它就叫我输名次了?

解决方案

%s 以空白符号结束输入,如回车,空格等,但空白符号仍留在stdin缓冲区中,
%s输入名字语句后加getchar()或者语句后面用清空stdin缓冲区fflush(stdin);

解决方案二:

性别用%s,不要用%c

解决方案三:

将性别定义成 int 类型,然后修改 scanf 的实现看看是否有改善

解决方案四:

上一行%sn 记得可以

解决方案五:

我猜是 回车 /r /n 有两个字符,把性别用ask码打出来看看是什么

解决方案六:

我猜是 回车 /r /n 有两个字符,把性别用ask码打出来看看是什么

解决方案七:

我加多了getchar();后,运行怎么出错了

时间: 2024-09-20 00:11:34

c语言-为什么scanf那条于句老是被跳过去的相关文章

c语言-关于scanf输入数组单个数值的问题

问题描述 关于scanf输入数组单个数值的问题 我最近在学习scanf的具体使用.然后遇到了一个问题就是,当我只想给数组的一个元素输入scanf输入的值的时候,无法输入,也无法显示. 程序是这样的: #include #include void main() { char a; char b[10]; char c[10]; char *p; p=b; printf("a="); scanf("%c",&a); printf("b=");

字符串-[c语言]关于 scanf() 和 char数组 的小实验的问题

问题描述 [c语言]关于 scanf() 和 char数组 的小实验的问题 写了三个小的几乎一样的test代码,但是输出却不同,不明白为什么,求大神指点.全部代码如下:#include void sub1(void); int main(){ /*test1*/ sub1(); /*test2 */char w0[2]={'a''a'}; char * pc0 = w0; printf("" w1 = %s""w0); /*wrong*/printf("&

c语言关于scanf("%*s")

问题描述 c语言关于scanf("%*s") 我只想scanf(""%*s"")该语句起清除作用,并不想在运行时,额外要多输入字符,请问如何解决呢? #include void rt ( char ch int x int y); //声明调用函数int main (void){ int i j status; char ch; printf (""请输入一个字符:n"");scanf ("&qu

c语言的scanf在按下“Enter”键后到底发生了什么事情??

问题描述 c语言的scanf在按下"Enter"键后到底发生了什么事情?? 我有几个问题: 上面的解释是输入71.82后按下回车,回车被c1当作字符吸收了,c2吸收了'A';但是上面输入完b=7后,不是按下了回车键吗,最终输入了71.82按下回车后,键盘缓存中不是存留着两个回车吗?为什么c2不是吸收到回车?? scanf在按下"Enter"键后到底发生了什么事情? 解决方案 执行scanf()函数时,在键盘输入回车会把之前的输入连同回车符一起送入缓存区,然后通过格式

c语言-C语言用scanf清理输入缓存的一个程序

问题描述 C语言用scanf清理输入缓存的一个程序 源程序如下:#includeint main(){ int num; printf(""输入数字:""); scanf(""%d""&num); printf(""输入了数字:%dn""num); printf(""是否继续测试:[Y/N]"");scanf(""%*[

链表-请教:(C语言学生信息管理)程序函数里好像直接跳过了某一段代码执行

问题描述 请教:(C语言学生信息管理)程序函数里好像直接跳过了某一段代码执行 void Student_Searchself(STUDENT *head) //此函数是为了显示学生的各科成绩和各科排名 //(head)存储学生成绩的链表头指针{STUDENT *p*m*e*y*l;STUDENT *p1*p2*p3*p4;char s[6];system(""cls"");printf(""请输入本人学号来查找n"");sca

索引超出数组界限,这句老是报错索引超出数组界限是咋回事啊????求大神解答

问题描述 索引超出数组界限,这句老是报错索引超出数组界限是咋回事啊????求大神解答 int rowIndex = ((DataTable)SQLiteDBHelper.BindingSource.DataSource).Rows.IndexOf(((DataTable)SQLiteDBHelper.BindingSource.DataSource).Select("Su编号=" + suid)[0]); 这句老是报错索引超出数组界限是咋回事啊????这句老是报错索引超出数组界限是咋回

不想加上第一条-echarts第二条折线怎么老是加上第一条折线的值再显示

问题描述 echarts第二条折线怎么老是加上第一条折线的值再显示 解决方案 贴上option代码 解决方案二: 已解决,用标准折线图就好,谢谢啊

asp.net ado.net c#-这句老是说有参数没指定值 大神们帮忙看下

问题描述 这句老是说有参数没指定值 大神们帮忙看下 cartid和cartCount都是有值的 解决方案 代码呗挡住了,看不见,肯定是你sql中要求一个参数,但是你的parameter没给.仔细检查下.因为你是有分支的,所以调试下在特定分支下是不是没有赋值. 解决方案二: 解决方案三: