我们如何在C++中一次性扫描来自 STDIN 的 100 个字节



扫描程序会等到我们输入 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`.

最新更新