扫描仪等待,直到我们输入100个字节的数据。因此,如果我们将文件重定向到
可执行文件的输入,如果文件有> 100字节的数据。我一次扫描它,而不是逐行扫描fgets()
或scanf("%s")
等。
答案 0 :(得分:3)
您可以使用fread
来读取所需的字节数,而不受换行符或其他任何内容的影响:
char buf[100];
size_t bytes_read = fread(buf, 1, 100, stdin);
请注意buf
不会以空值终止。因此,如果您想要printf
,例如(它需要一个以空字符结尾的字符串),您可以尝试以下方法:
char buf[101];
size_t bytes_read = fread(buf, 1, 100, stdin);
buf[100] = '\0'; // The 101th "cell" of buf will be
// the one at index `100` since the
// first one is at index `0`.