fgets

    2热度

    2回答

    的Apple developer documentation状态: 为fgets安全注意:虽然fgets功能提供了读取数据的数量有限的能力,就必须使用时要小心。像“更安全”列中的其他功能一样,fgets始终终止字符串。但是,与该列中的其他函数不同,它需要读取的最大字节数,而不是缓冲区大小。 最后一句对我来说听起来不对。为了比较,这里是what POSIX says: 的fgets()功能必须从阅读

    0热度

    1回答

    在课堂上,我遇到了这个代码片段 for (numlines = 0, (fp=fopen("thefile",'r')); feof(fp); numlines++) { fgets(fp, buffer, sizeof(buffer), fp); ... } 在for循环头与fgets,两件事情,即numlines和fp,可以初始化,对不对?在for循环体 然后, fg

    2热度

    3回答

    我希望用户只输入两个整数,但不能超过两个或少于两个。另外,在无效输入时,我希望打印一个错误并提示用户再次输入两个整数。用户应输入由空格分隔的两个整数,而不是换行符。因此,例如: 1)的有效输入是:1 2 2)输入无效:1 3)无效的输入: #include<stdio.h> int main(){ int first; int second; printf("E

    -3热度

    1回答

    我想知道fgets()是否从用户输入(即键盘)读取新的行字符。下面是一些示例代码,我写道: while (1) { char userInput[3] = {'\0', '\0', '\0'}; fgets(userInput, 3, stdin); flushStdin(); printf("%s\n", userInput); } 如果键入“2”

    0热度

    1回答

    我注意到fscanf文件和整数没有与确定的C编译器(英特尔,Cray公司)工作,所以我想用fgets读取包含字符串和整数 一个简单的输入文件 $cat input.txt st 10 167 POP 456 244 NONE ENERGY 我可以做这样的事情 int main() { FILE *ptr_file; char buf[1000]; ptr_f

    0热度

    2回答

    问题是fgets在循环的第一次迭代中没有取任何值。只需简单地跳过它。照我看来。我在那里有一些基本的错误,但我没看到它。 Fgets只在2d迭代时开始取值。 #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main(void) { int t; scanf

    0热度

    1回答

    我是编程的绝对初学者,我从C语言开始。我正在用Dan Gookin编写的C for Dummies开始编程 当用fgets()进行练习时,发生以下情况。 这是我的代码 #include <stdio.h> int main() { char name[10]; printf("Who are you? "); fgets(name,10,stdin);

    1热度

    1回答

    我正在使用tail -f读取日志并将数据传输到我的ncurses程序。 tail -f somelog | ./a.out 当我按下q它的工作原理,除了罚款,程序不退出,它只是挂起直到一个字节写入文件是tail'd。这在使用cat somelog | ./a.out时不会发生,我想这是因为没有被遵循。 它看起来像行while(fgets(buf, 1024, input)是造成这个问题。任何想

    0热度

    1回答

    我想读取用户输入,将采取作为命令和某些方法将基于输入执行。例如,输入可能是: allocate 3 write 3 ABC 10 quit 输入的每个部分都是各自方法的关键参数。我一直在想如何使用scanf()和fgets()来解释输入的变化。

    1热度

    1回答

    从这个post这听起来像fgets()意味着是一个阻塞调用,但是,this手册页显示,如果设置为非阻塞,它将返回NULL和errno将EWOULDBLOCK如果没有数据已准备好被读取,因此我的假设是,确实有可能将它用作非阻塞。 我知道select()和朋友,我只想知道它是否安全地使用它作为非阻塞?如果不是,这些原因是什么?