13得票2回答
能否区分fgets返回的错误?

查看ISO C11标准关于fgets §7.21.7.2, 3的内容,其中关于代码概要中返回值已经说明: #include <stdio.h> char *fgets(char* restrict s, int n, FILE* restrict stream); fgets函数...

16得票1回答
fgets()的返回值是什么?

我最近才开始使用 C 中的 I/O。这是我的问题 - 我有一个文件,从中读取输入。然后我使用 fgets() 将字符串读入缓冲区,以某种方式利用。现在,如果输入对于缓冲区来说太短,即如果第一次 fgets() 读取到 EOF,会发生什么?fgets() 是否应该返回 NULL(正如我在 fge...

13得票5回答
使用C语言中的fgets和fgetc来读取一行的区别

我需要读取一行文本(以换行符作为终止符),但不能假设其长度。因此,我现在面临两种可能性: 使用fgets函数,并每次检查最后一个字符是否是换行符并将其连续附加到缓冲区中 使用fgetc函数逐个读取每个字符,不时使用realloc重新分配缓冲区大小 直觉告诉我fgetc变体可能会更慢,但...

12得票2回答
使用fgets函数时遇到EOF

我正在编写一个执行某些身份验证操作的函数。我有一个文件,其中包含所有以以下结构构建的用户ID:密码:标志对: Users.txt user_123:a1b2:0 user_124:a2b1:1 user_125:a2b2:2 这是代码:int main(){ /*...*/ ...

49得票7回答
C语言中,scanf()、gets()和fgets()有什么区别?

我一直在做一个相当简单的程序,将字符串(假设输入的是数字)转换为整数。 完成后,我注意到了一些非常奇怪的“错误”,因为我的scanf()、gets()和fgets()函数知识有限,所以无法解答。(虽然我读了很多文献。) 所以,不多说废话,这里是程序的代码:#include <stdi...

9得票5回答
在Perl中,我能否像使用fgets一样从文件中读取一行并限制其长度?

我想编写一段代码,按行读取文件并存储每行的输入数据,但要限制每行的长度。我希望防止最终用户恶意输入超过1GB的数据导致内存溢出,同时也要防止读入异常大的文件。使用$str = <FILE>仍然会读取整行,这可能非常长并导致内存溢出。 在PHP中,可以使用fgets函数指定要读取的...

10得票4回答
如果您不知道要读取的字符数量,如何使用fgets?

我需要读取一个文件并将其发送到一个字符串中,以便我可以解析它。然而,程序不会知道文件的确切长度,如果我想使用fgets(),该怎么办?还是有更好的替代方案吗?char *fgets(char *str, size_t num, FILE *stream);

49得票6回答
使用fgets()函数如何从stdin读取输入?

我写了下面这段代码来从终端窗口读取一行,但问题是代码陷入了无限循环。由于这一行/句子的长度未定义,因此我计划将其分成几部分读入缓冲区,然后将其连接到另一个可以通过realloc扩展的字符串中。请问是否有人能够发现我的错误或提出更好的实现方法?#include <stdio.h> #...

7得票3回答
在C语言中读取带有空格的字符串

我正在尝试读取一个包含空格或不包含空格的字符串,例如 "hello world"。通过以下方式实现,使用由用户输入的数字选择菜单。这只是我试图做的事情的一个小型复制。 #include <stdio.h> #include <string.h> int main(v...

8得票2回答
为什么alarm()会导致fgets()停止等待?

我正在尝试使用 C 语言中的信号。我的主函数基本上使用 fgets(name, 30, stdin) 请求一些输入,然后等待。我使用 alarm(3) 设置了一个闹钟,并重新分配了 SIGALRM 调用一个名为 myalarm 的函数,该函数只是调用 system("say PAY ATTEN...