22得票5回答
fgets()函数是否总是以\0终止字符缓冲区?

fgets()是否总是使用\0终止字符缓冲区,即使已经到达EOF?看起来它确实这样做(在ANSI K&R书中给出的实现中肯定如此),但我想询问以确保。 我猜这个问题也适用于其他类似的函数,比如gets()。 编辑:我知道在“正常”情况下会附加\0,我的问题针对的是EOF或错误条件。例如...

11得票5回答
在C语言中使用fgets()函数后清除输入缓冲区

#include <stdio.h> int main() { char name[10]; for(int i=0;i<=10;i++) { printf("Who are you? "); if(fgets(name,10,stdin)!=NU...

139得票12回答
读取txt文件的每一行到新的数组元素中

我想将文本文件的每一行读入一个数组,并让每一行都在一个新元素中。 到目前为止,我的代码如下。<?php $file = fopen("members.txt", "r"); while (!feof($file)) { $line_of_text...

10得票6回答
使用fgets读取的一行中的strcmp函数

我正在尝试比较两个字符串。其中一个字符串存储在文件中,另一个字符串从用户(stdin)检索。 这是一个示例程序:int main() { char targetName[50]; fgets(targetName,50,stdin); char aName[] = ...

8得票4回答
C:定位到文件中已知行的最佳方法

我有一个文件,我想遍历它,但不处理当前行。我要找的是在文本文件中定位到特定行的最佳方法。例如,将当前行存储到变量中似乎没有用,直到我到达预定的行。 示例: file.txt foo fooo fo here 通常,要达到这个目的,我会执行以下操作: FILE* file = fop...

12得票2回答
已经关闭写入端的管道,我们需要显式地关闭读取端吗?

我有以下情况: 创建一个管道。 分叉一个子进程。 子进程明确关闭管道的读端并向管道的写端写入数据,并在不关闭任何内容的情况下退出(我认为,exit应该代表子进程关闭所有打开的文件/管道描述符)。 父进程明确关闭管道的写端,并使用fgets从管道的读端读取,直到fgets返回NULL。即完...

18得票4回答
fgets和fscanf有什么区别?

我有一个关于C语言中fgets和fscanf的问题。这两者的区别到底是什么?例如:char str[10]; while(fgets(str,10,ptr)) { counter++; ... 还有第二个例子:char str[10]; while(fscanf(ptr,"%s",str)) ...

13得票5回答
C语言中read()和fgets()的区别

我想从stdin流中读取数据。使用read()或fgets()从stdin流中读取是否有任何区别? 我附上了使用fgets和read的两段代码。 使用fgets,我可以轻松地使用Java程序编写并从C程序读取。 使用read和write,我的Java程序挂起等待来自未到达的C程序输出。 我...

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

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

9得票3回答
fgets函数的回车符处理方式

我正在运行以下代码: #include<stdio.h> #include<string.h> #include<io.h> int main(){ FILE *fp; if((fp=fopen("test.txt","r"))==NUL...