重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

C语言gets函数用不J,c语言中的gets函数的作用

C语言gets为什么不执行

gets函数是以换行符或者EOF为结束标志,如果用空格或者跳格,gets函数会继续等待用户输入。

成都创新互联专注于企业营销型网站、网站重做改版、榆林网站定制设计、自适应品牌网站建设、H5建站商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为榆林等各大城市提供网站开发制作服务。

1、gets函数:

原型:char * gets(char * buffer);

功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为 \0 空字符,并以此结束字符串;

说明:当使用unicode宽字符文本时,请使用宽字符版本函数 _getws()。gets函数可以无限读取,不会判断上限,所以使用时应确保buffer的空间足够大,以便在执行读取操作时不发生溢出。gets函数在C11标准中被移除,改为更加安全的gets_s函数;

头文件:stdio.h;

返回值:若读入成功,返回与参数buffer相同的字符指针。若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。

2、例程:

#include stdio.h

int main(){

char buffer[5];//定义缓存字符数组buffer

gets(buffer);//用gets函数从stdin流中读入字符串,因为buffer长度是5,输入不能超过4个字符

printf("%s",buffer);//在stdout流中输出读入的字符串

return 0;

}

C语言gets函数的用法,能用代码举个例子么

1、gets() 函数是从键盘输入字符串,该函数只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。打开编辑器,新建一个c语言文件,引入标准库并新建主函数:

2、gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,这里的程序是用gets函数输入字符串,可以看到不像scanf那样需要使用%号,gets函数中直接传入字符串即可:

3、最后运行下程序,输入“i love you”,可以看到gets函数可以直接输出空格,而scanf函数输出空格则需要使用转义字符实现,因此gets函数的使用要比scanf简洁的多。以上就是gets函数使用方法的演示:

c语言的gets函数编译不成功阿,很短的程序?

C语言的gets函数一般包含在stdio.h头文件里,如果没有包含比头文件那可能会有问题。第二种情况包含了还出问题,说明你的编译器已经不支持这个函数了,这个函数非常不安全,容易造成溢出,建议换成fgets函数。

函数原型:

char *fgets(char *buf, int bufsize, FILE *fp);

参数解释:

参数一是输入字符串存放地址,

参数二是存放地址最大容量,

参数三是从哪里输入,可以从文件也可从输入设备,如果从输入设备输入这个参数可以写成stdin,如果从文件输入此参数为文件指针。

返回值:

输入成功返回参数一,失败返回NULL.

补充知识:

为什么gets不让用呢,我们可以看它的原型:char *gets(char *buf);

这个函数可以一直输入知道换行或者EOF,它并不考虑buf空间是否足够大能放下,这就容易导致溢出,有些别有用心的人就会利用这个漏洞去攻击你的程序。

而fgets可以通过第二参数保证不会读入超过buf空间的字符。

C语言中gets怎么用不了

#includestdio.h

static

char

buff[256];

static

char

*string="abcdef";

int

main()

{

printf("Please

input

a

string:");

gets(buff);//buff

才是用来存储字符串的,

string

已经指向字符串常量,

而常量是不能被修改的

printf("\nYou

string

is

:

%s\n",buff);//你输入的字符串在buff数组中

return

0;

}


网站栏目:C语言gets函数用不J,c语言中的gets函数的作用
链接URL:http://cqcxhl.cn/article/heiosc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP