55问答网
所有问题
求助,关于C语言中gets函数,和scanf函数,有示例~~~~~
不明白为什么会这样,求解答,求帮助~~~
举报该问题
推荐答案 2013-05-03
gets函数接收了你第一次输完名字后按下的回车键,你可以在gets(student[i].name)前面在加一个getcgar(),或者直接在for语句体的第一行写fflush(stdin)清除输入缓冲区也行
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/Qc8LRLcQQ.html
其他回答
第1个回答 2013-05-03
scanf剩了个换行符没有读走,
被下一个gets读到了。
可以这样改:在scanf后加个gets读掉剩下的换行符就正常了。
也可以先用gets读输入电话号到字符串里,然后用sscanf从字符串里的读,就没有这样问题了。
第2个回答 2013-05-03
scanf函数不会舍弃最后的回车符(即回车符会残留在缓冲区中)。当第二次执行gets函数时,gets读到换行符就结束读取,执行下一个语句。于是出现上面的情况。
参考:
http://wenku.baidu.com/view/6387198402d276a200292ebc.html
第3个回答 2013-05-03
gets()是用来输入字符串的scanf()则可以输入字符串也可以整形变量,格式就是跟上面的那些一样
第4个回答 2013-05-03
gets()接受了来自上面缓冲区的字符
第5个回答 2013-05-03
把gets(.......)换成scanf("%s",student[i].name)试试,
仅供参考
1
2
下一页
相似回答
scanf,get
char
,gets
分别输入字符串有什么区别?详细点哦,最好有例子!
答:
其实用
scanf
("%s",);和
gets
();本质上没有什么区别,都是将字符数据输入到制定的内存单元中。假设定义有字符数组(
C语言
把字符串按字符数组处理)str[30],那么我们向里面输入字符就可以为:scanf("%s",str);gets(str);他们都可以这样输出:printf("%s",str);或者puts(str);注意:(1)使用scanf...
c语言
初学者 输入
函数
答:
C语言中两种方法都可以,但有区别
scanf
("%s",s)是读取不到空格的。而
gets
(s)可以读取。两种方法都是一个一个字符读取的。不同的是scanf是遇到空格或者回车键就会结束,但gets是只有输入回车键才会终止读取字符串!下面是例子:#include<stdio.h>intmain(){ charx[10]; scanf("%s",x); ...
...把多个以空格隔开
的
字符串
,scanf函数
能做到吗?
gets函数
答:
1.gets()【1】
函数
:gets(字符指针)【2】头文件:stdio.h(
c
中),c++不需包含此头文件 【3】原型:char *gets( char *buffer );【4】功能:从stdin流
中读取字符串,
直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符...
有人能告诉我一下
C语言中gets函数和scanf函数
的区别吗
答:
gets
( a );那么会将读到的字符串保存到a字符数组中,使用的时候有数组越界的危险,要使接收输入的字符数组足够大。int
scanf
( Format [, Pointer, ... ])根据给定的格式从标准输入读取数据。例 scanf( "%64s", a ); 从标准输入最多读取64个字符的字符串放到a数组中。比较安全。也...
C语言中gets和scanf
的区别?
答:
char s[1024];// 假设输入123 abc 123
gets
(s); // 可以读取一行
scanf
("%s",s); // 只能读取123,空格后的abc 123都不会被读进来
大家正在搜
c语言gets和scanf
gets函数和scanf区别
c语言scanf和printf
c语言scanf与gets
c中scanf和gets的区别
C语言scanf后面接gets
scanf和getchar
fgets和scanf的区别
在c语言中scanf什么意思