扫描器一直等到我们输入 100 字节的数据。因此,如果我们将一个文件重定向到可执行文件的输入,如果该文件有 > 100 字节的数据。我一口气扫描它,而不是逐行扫描fgets()
或scanf("%s")
等。
问问题
145 次
1 回答
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`.
于 2012-12-10T20:03:27.470 回答