
正文
c语言gets为什么输入不执行,c语言gets为什么用不了
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言gets()问题
1、gets得到的是字符串,而字符串是以\0结尾的啦。
2、gets 读入一行字符串,含新行符,但不同于 fgets, gets 不把 新行符 存入 它的实参。
3、gets()用于从标准输入流stdin读入一个整行(以 或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的 从流中取出,但不写入数组。gets()不检查被写入的数组大小。
4、gets函数的原型是char*gets(char*buffer);就是说要求一个实参是指针类型。然后我们看一下char cs[5][20]表示什么,cs[5][20]是一个二维的字符数组,当然,你可以把他看做是一个一维的指针数组。
5、gets()函数用于从缓冲区中读取字符串,其原型如下:char *gets(char *string);gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数string中。
相关问答
Q1: c++程序问题,为什么用gets()输入不了字符,程序无错,把pluskey
1、C语言里的gets()函数功能是从输入缓存中读取多个字符,遇到回车符时,结束输入。
2、这是由于程序在读取数字时只读取了前面的数字部分,而把后面的回车符留在了键盘缓冲区,所以在下面读取字符串时遇到这个回车符就结束了,也就是说程序读到了一个空的字符串。
3、gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
4、用 fgets( book[i].bn, 100, stdin);这种形式输入。回车换行符就会含在字符串里,输入不会读乱。读入的字符串长度等于 strlen(book[i].bn);最后一个字符是 \n把它赋成 \0 就从字符串里清除了。
Q2: C语言程序中gets()怎老是在执行时自动跳过不接受输入?
1、用 fgets( book[i].bn, 100, stdin);这种形式输入。回车换行符就会含在字符串里,输入不会读乱。读入的字符串长度等于 strlen(book[i].bn);最后一个字符是 \n把它赋成 \0 就从字符串里清除了。
2、方法在gets()前加fflush(stdin);//强行清除缓存中的数据(windows下可行)方法根据程序代码,确定前面是否有输入语句,如果有,则增加一个getchar()命令,然后再调用 gets()命令。
3、方法在gets()前加fflush(stdin); //强行清除缓存中的数据(windows下可行)方法根据程序代码,确定前面是否有输入语句,如果有,则增加一个getchar()命令,然后再调用 gets()命令。
4、你可以用一个while循环,反复gets,直到读出的不是空字串。另外一个方法是不要scanf,而是定义一个缓存,然后用gets把所有数据都读到自己的缓存字符串中,再用sscanf从字符串而不是屏幕去读取数据。
5、scanf(%s%s,a1,a2); 当新行符到达时,scanf 开始 工作,把 拍入的 aa 放入 a1, 把 bb 放入 a2; 新行符 保留在 输入流里。
c语言gets为什么输入不执行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言gets为什么用不了、c语言gets为什么输入不执行的信息别忘了在本站进行查找喔。






