Standard-Libraries是否提供了一种更快的替代方法,它可以读取stdin
文件的所有内容/任何字符,然后将其传递给stdout
,而不必读取文件,将所有字符写入数组,然后给出整个数组的内容分别以stdout
的形式返回到stdin
?
[我只想分析stdin
文件中的实际内容,而不是通过简单的方法获取其数据。
我找不到标准库的任何功能,可以做到这一点。
我知道这很少,但是我想关于我想要的东西无话可说。
问题是针对C和C ++的,因为我同时使用它们。如果这些答案之间的答案有所不同,请提及重点关注的语言。
您可以使用getchar以字符形式stdin
读取字符。但是,在许多情况下,使用缓冲区(例如,字符数组)会更快。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int ch;
while ((ch=getchar()) != EOF) /* read/print "abcde" from stdin */
printf("%c", ch);
/* Test reason for reaching EOF. */
if (feof(stdin)) /* if failure caused by end-of-file condition */
puts("End of file reached");
else if (ferror(stdin)) /* if failure caused by some other error */
{
perror("getchar()");
fprintf(stderr,"getchar() failed in file %s at line # %d\n", __FILE__,__LINE__-9);
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}