[英]Read file from stdin C with scanf
我可以使用scanf("%s", &input)
从stdin
读取文件内容。
如果我不知道文件要多长时间,应该为input
字符串分配多少空间?
考虑使用fgets
代替scanf
。 scanf
可能导致溢出,但是您可以告诉fgets
您想要读取的最大大小。 如果需要scanf
进行格式扫描,则仍可以在fgets
之后使用sscanf
。
char * fgets ( char * str, int num, FILE * stream );
您应该反问。 您分配一个已定义大小的缓冲区,它们将限制输入,例如fgets
scanf
。
#define SIZE 256
char buf[SIZE];
fgets(buf, SIZE, stdin);
要么
scanf("%255s", buf);
然后重复阅读。
使用fgets
代替scanf
取决于输入是面向行的还是空格分隔的。 还有... RTFM ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.