0

扫描器一直等到我们输入 100 字节的数据。因此,如果我们将一个文件重定向到可执行文件的输入,如果该文件有 > 100 字节的数据。我一口气扫描它,而不是逐行扫描fgets()scanf("%s")等。

4

1 回答 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 回答