是否有标准功能通过stdout打印/监视stdin文件的内容并将数据留在stdin中?

问题描述 投票:0回答:1

Standard-Libraries是否提供了一种更快的替代方法,它可以读取stdin文件的所有内容/任何字符,然后将其传递给stdout,而不必读取文件,将所有字符写入数组,然后给出整个数组的内容分别以stdout的形式返回到stdin

[我只想分析stdin文件中的实际内容,而不是通过简单的方法获取其数据。

我找不到标准库的任何功能,可以做到这一点。


我知道这很少,但是我想关于我想要的东西无话可说。

问题是针对C和C ++的,因为我同时使用它们。如果这些答案之间的答案有所不同,请提及重点关注的语言。

c++ c io stdout stdin
1个回答
2
投票

您可以使用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;
}
© www.soinside.com 2019 - 2024. All rights reserved.