ACM中gets函数用不了

Posted 雪靡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM中gets函数用不了相关的知识,希望对你有一定的参考价值。

因为这个函数不安全,现代c++编译器里面都删除了这个函数,网络上的gets_s有在VS中才能使用。推荐使用fgets

函数原型

char *fgets(char *str, int n, FILE *stream);

参数

  • str– 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
  • n– 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
  • stream– 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。

功能

从指定的流 stream 读取一行,并把它存储在str所指向的字符串内。当读取**(n-1)**个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

返回值

如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针。

  1. 在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则stream保持原来的内容,返回NULL;
  2. 如果发生读入错误,error指示器被设置,返回NULL,stream的值可能被改变。

使用方法:

char str[10];
while (fgets(str, 10, stdin) != NULL)

    

以上是关于ACM中gets函数用不了的主要内容,如果未能解决你的问题,请参考以下文章

C语言gets()问题

杭电acm能不能用python

1081 检查密码 (15 分)(gets()函数自动丢掉末尾 ,不需要getchar())

swiper在使用if的时候用不了

androidpost添加到请求头

c语言,gets函数的详细用法?