精华内容
下载资源
问答
  • c++gets
    千次阅读
    2020-08-13 08:38:21

    gets()函数可以无限读取,不会判断上限,以回车结束读取

    C++11好像不用gets函数了

    更多相关内容
  • 最近做游戏编辑器,自己试着用C/C++写了一个读取简单配置表的函数,在控制台下测试的时候,使用了C的标准库gets函数,发现编译器报告gets函数unsafe,网上搜索了一下,发现gets函数不对接受字符串的buffer进行边界...

    最近做游戏编辑器,自己试着用C/C++写了一个读取简单配置表的函数,在控制台下测试的时候,使用了C的标准库gets函数,发现编译器报告gets函数unsafe,网上搜索了一下,发现gets函数不对接受字符串的buffer进行边界检测,会造成越界,从而产生bug;自己写的东西,也是自己用的东西,当然可以在定义配置表的时候得到控制,从而不会使越界的情况出现,但是总的来说这不是一个好的思考方式;于是按照网上的提示改用了fgets函数替代;

    使用fgets函数后,就发现问题了,原来的代码不能正常工作了,调试了一通,发现使用fgets函数获取的字符串与gets函数获取的不一样,fgets函数获取的字符串会在buffer里面保留换行符,而gets函数不会;好吧,问题找到了,解决也很简单,把最后一个换行符拿掉,换成'\0'就可以了。然后,又发现有个gets_s函数,可以像gets一样不会获取换行符,也不会有gets的越界问题,然后在cppreference.com查看了这几个函数的描述,却发现gets_s函数是一个标准库扩展函数,一个可选项;所以就不知道这个gets_s函数在各个编译器下的支持情况如何!作罢,还是使用fgets函数吧。

    这里所引起的思考是:很多的库函数都有着一些很细节的限制,而它的reference一般都会有详细的描述,这就得在使用库函数时去详细的了解库的条件和限制,以免因对库的片面理解,而造成bug.

    展开全文
  • c++ gets函数

    千次阅读 2019-10-01 03:41:54
    函数名称:gets函数 函数结构:gets() 所需头文件:#include<cstdio> 函数作用:持续读入,直到遇到换行停止输出。 转载于:https://www.cnblogs.com/lipeiyi520/p/8439377.html...

    函数名称:gets函数

    函数结构:gets()

    所需头文件:#include<cstdio>

    函数作用:持续读入,直到遇到换行停止输出。

    转载于:https://www.cnblogs.com/lipeiyi520/p/8439377.html

    展开全文
  • C++ gets()函数

    千次阅读 2019-07-28 06:50:37
    gets()函数从标准输入设备读字符串函数。无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。 char str1[5]; //不要char*p,然后gets(p),这是错误...

    gets()函数从标准输入设备读字符串函数。无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

     char str1[5];  //不要char*p,然后gets(p),这是错误的,因为p没有指向有效的内存,它可能指向任何非法地址                   //     地方的未知大小的内存块,这样以来,就可能修改了不属于本程序的内存的内容
        gets(str1);
        printf("%s\n",str1);
    
     char str[100];
        gets(str);
        cout<<str<<endl;
        return 0;
    
    展开全文
  • C++ gets() 前使用cin输入导致多录入一个回车符的解决办法 做字符串反转和判断回文算法题的时候都遇到了这个问题,和舍友讨论并逐个测试以后总结出了一些解决方法。 问题描述如下: 题目要求在输入字符串前先输入一...
  • vs2019中c++gets()报错未定义标识符

    千次阅读 2022-03-24 22:55:38
    今天在做科学计算器的时候遇到一个问题,就是我在头文件已经添加了#include<string.h>和#include<string>...后来查了一些资料,发现可以通过在gets()后面加上_s解决,即gets_s() ......
  • c++gets用法总结

    万次阅读 多人点赞 2019-01-21 13:43:40
    gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以应该确保buffer的空间足够大,以便在执行读操作时不发生溢出; a必须是char型数组,即char a[40000];这个40000代...
  • C++gets和puts

    2021-01-13 09:35:43
    gets和scanf一样是获取一个键盘上输入的字符串,但是gets方法接收一切特殊字符的输入,不会因为有空格等特殊字符而打断 比如输入的是:123 456,中间有个空格 scanf只能接收到123,而gets可以全部接收到
  • 关于c++ gets函数的一个问题
  • gets(filename); //用get函数,避免scanf以空格分割数据, if (filename[0]==34) filename[strlen(filename)-1]=0,strcpy(filename,filename+1); //支持文件拖曳,但会多出双引号,这里是处理多余的双引号 if (!...
  • 关于c++gets的一些问题

    2021-12-07 23:01:47
    c++中用gets输入,结果输出后出现了一些乱码 int main () {char str[100]; gets(str);} 这些后面的乱七八糟的符号怎么处理掉,求简单一点的办法
  • 我想写一个统计单词的程序,但又不能使用cin(遇空格就自动结束),所以想到用c中的gets函数, 但是遇到报错,不知道是不是在c++中不能用gets函数 gets()函数能在c++中使用吗? gets()函数能在c++中使用吗? ...
  • 昨晚遇到一个有意思的问题,明明在Visual Studio 2019运行好好的C语言代码,Copy到Visual C++ 6.0中就无法编译通过了,错误提示信息如下: error C2143: syntax error : missing ';' before 'type' 这就有意思了,...
  • 关于PTA中C++不能用gets

    2022-03-23 09:14:31
    pta中用c++时如果使用gets将会显示编译错误 此时可以用cin.getlin(a,10005);代替gets(a); 引入例题 1-7 A-B (20 分) 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的...
  • C++求助:未定义标识符“gets

    万次阅读 多人点赞 2020-09-28 01:29:59
    问题表现 生成首字母缩写的代码里面的“gets”变成了未定义标识符,发个贴向大佬求助QAQ 有亿点点急
  • C++读取一行字符串时,可以用函数getline 和 gets,在VC++2010,gets可以使用,但是在VS2019中,需要用到更安全的函数gets_s。 在使用gets_s时,只需要一个参数,用char数组存储的字符串,也就是C语言的字符串存储...
  • } gets不能使用 使用gets_s gets是老标准C语言函数,vs使用更安全的c11标准, 使用对应的gets_s char line[32]; gets_s(line, sizeof(line)); cin >> 的返回值 ((cin >> word) == 0) 在VS中不能通过编译 #include #...
  • getchar()和gets()
  • c++: getchar(), gets(), puts()等 1.getchar() 会连回车/tab/空格一起吞,不过是按顺序的。输入可以 while ((c=getchar())!='\n') 或while(getchar()!='\n'); 们在给函数传多个参数的时候,编译器是从左到右将...
  • C++gets()函数

    万次阅读 多人点赞 2016-09-19 00:03:24
    gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。 功能 编辑 从stdio流中读取字符串,直至接受到换行符...
  • C++ 用fgets 代替 gets

    2020-04-28 18:40:46
    当读取未知长度字符串时,由于gets()未界定字符串最大长度,可能会造成缓存溢出。 PAT 上使用新编译器,已不支持gets()。 替代方法是使用gets_s() 或 fgets()。 char * fgets(char * s, int n,FILE *stream); s: ...
  • 下面通过两个例子说明一下此cin和gets()区别: #include<iostream> using namespace std; int main() {       char str[20];       cin>>str;...
  • 列举了C/C++常用头文件及函数,保存下来可以供随时查阅
  • C++字符串读入函数(gets&getline)

    千次阅读 2019-08-16 11:08:47
    对于字符串的读入,我们有scanf和cin这两个最为经典的函数,但是我们发现这两个函数如果遇到空格或换行就结束了。...而cstdio和iostream头文件为了解决这个问题分别提供了两个函数——gets和getline函数。
  • 【C/C++gets与fgets

    2019-05-18 23:08:06
    gets与fgets 原型声明 #include<cstdio> char * gets ( char * str ); ​​​​​​​char * fgets ( char * str, int num, FILE * stream ); 参数及返回值说明 str:指向字符数组的指针。num:要复制到...
  • 文章目录1、gets( )2、scanf( )3、getline( )4、getchar( )5、 坑 1、gets( ) 头文件 #include <stdio.h> 功能: 实现对字符串的输入,可接受空格、Tab(制表符)和回车,遇回车结束。 ps: 输入字符串不可以是...
  • [C/C++语法]—gets函数及fgets函数

    千次阅读 2019-12-05 21:43:34
    gets函数 gets函数描述 gets函数原型为 char* gets(char* buffer); gets函数将读取字符串直至**’\n’**结束,并将最后读取的’\n’转化为’\0’(字符串结束标志) gets函数将返回数组的首地址,从数组首地址开始...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,185
精华内容 16,074
关键字:

c++gets

友情链接: PCNN.zip