9得票5回答
C++:将读取的二进制文件存储到缓冲区

我正在尝试读取一个二进制文件并将其存储在缓冲区中。问题在于,该二进制文件中有多个以null终止的字符,但它们不是在末尾,而是出现在其他二进制文本之前,因此如果我在'\0'后面存储文本,它会在缓冲区中将其删除。 例如: char * a = "this is a\0 test"; cout ...

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

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

9得票9回答
在C:\wamp\www\study\sayHello.php的第5行中,使用了未定义的常量STDIN,被自动认定为'STDIN'。

我想学习php和mySQL,于是购买了一本书(php&mySql: the missing manuals 2edition)。 我在win8 64位机器上安装了Wampserver2.4。 服务器配置 Apache版本:2.4.4 PHP版本:5.4.12 在第一课时,我遇到了以下...

13得票7回答
比fgets更快地读取一行输入?

我正在编写一个程序,性能很重要但不是至关重要。当前,我正从一个FILE*逐行读取文本,并使用fgets获取每一行。经过一些性能工具的测试,我发现我的应用程序在运行时有20%到30%的时间处于fgets内。 有更快的方法来获取一行文本吗? 我的应用程序是单线程的,没有使用多个线程的意图。输入可...

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

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

16得票4回答
C语言中的fgets()函数

我知道每个人都告诉我要使用fgets而不是gets,因为后者容易发生缓冲区溢出。然而,我对fgets()中的第三个参数有点困惑。就我所理解的,fgets依赖于:char * fgets ( char * str, int num, FILE * stream ); char* str是指向存储...

350得票15回答
从 fgets() 输入中移除尾部换行符

我正在尝试从用户那里获取一些数据并在gcc中将其发送到另一个函数。代码大致如下。printf("Enter your Name: "); if (!(fgets(Name, sizeof Name, stdin) != NULL)) { fprintf(stderr, "Error r...

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

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

15得票5回答
如何防止 fgets 阻塞当文件流没有新数据时

我有一个popen()函数,用于执行tail -f sometextfile命令。只要文件流中有数据,我就可以通过fgets()获取数据。但是,如果从 tail 中没有新的数据,fgets()就会挂起。我尝试过ferror()和feof(),但都无济于事。如何确保fgets()在文件流中没有新...

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

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