扫描程序会等到我们输入 100 字节的数据。因此,如果我们要将文件重定向到可执行文件的输入(如果文件有> 100 字节的数据)。我一次性扫描它,而不是一行一行地扫描fgets()
或scanf("%s")
等。
您可以使用
fread
读取所需的字节数,与换行符或其他白字无关:
char buf[100];
size_t bytes_read = fread(buf, 1, 100, stdin);
请注意,buf
不会以 null 结尾。因此,如果您想printf
它,例如(它需要一个以 null 结尾的字符串),您可以尝试以下方法:
char buf[101];
size_t bytes_read = fread(buf, 1, 100, stdin);
buf[100] = ' '; // The 101th "cell" of buf will be
// the one at index `100` since the
// first one is at index `0`.