繁体   English   中英

使用scanf从stdin C读取文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM