Chinaunix

标题: gets的问题,谢谢 [打印本页]

作者: 我是害虫    时间: 2008-03-10 22:19
标题: gets的问题,谢谢
#include<stdio.h>
#include<string.h>
main()
{        char buf[33][11];
         for(i=0;i<3;i++)
                 gets(buf);
         printf("*%c*\n",buf[1][1]);
}
输入:
woshi(回车)
(回车)
haichong(回车)

输出:
*?
这是怎么回事啊?gets收都回车的时候会怎么做啊?
作者: cheney_lang    时间: 2008-03-10 22:26
  1. gets(buf[i]);
复制代码

man gets。
作者: cheney_lang    时间: 2008-03-10 22:42
还有因为gets在遇到输入的换行符才结束,容易造成缓冲区溢出,推荐使用fgets,指定字符串大小。
作者: 我是害虫    时间: 2008-03-10 22:46
原帖由 cheney_lang 于 2008-3-10 22:42 发表
还有因为gets在遇到输入的换行符才结束,容易造成缓冲区溢出,推荐使用fgets,指定字符串大小。

他怎么把第二个*变成问号的?
作者: cheney_lang    时间: 2008-03-10 22:51
程序的问题,什么输出都是有可能的。
作者: Kevin_zqw    时间: 2008-03-10 23:46
fgets




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2