Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有一个标准功能,可以打印/监控stdin文件的内容,同时将数据留在stdin中?_C++_C_Io_Stdout_Stdin - Fatal编程技术网

C++ 是否有一个标准功能,可以打印/监控stdin文件的内容,同时将数据留在stdin中?

C++ 是否有一个标准功能,可以打印/监控stdin文件的内容,同时将数据留在stdin中?,c++,c,io,stdout,stdin,C++,C,Io,Stdout,Stdin,标准库是否提供了一种更快的替代方法,即只读取stdin文件的所有内容/任何字符,将所有字符写入一个数组,然后将整个数组内容分别提供给stdout,然后再返回stdin(因为它只是为了“分析”目的)到stdin 我只想分析一下,stdin文件中的实际内容,而不是简单地从中获取数据 我找不到标准库的任何函数,它可以做到这一点 我知道这是少数,但我想没有更多的话要说我想要什么 问题是C和C++,因为我和两者都工作。如果这两种语言之间的答案不同,请说明重点是哪种语言。您可以使用以字符形式阅读字符std

标准库是否提供了一种更快的替代方法,即只读取
stdin
文件的所有内容/任何字符,将所有字符写入一个数组,然后将整个数组内容分别提供给
stdout
,然后再返回
stdin
(因为它只是为了“分析”目的)到
stdin

我只想分析一下,
stdin
文件中的实际内容,而不是简单地从中获取数据

我找不到标准库的任何函数,它可以做到这一点


我知道这是少数,但我想没有更多的话要说我想要什么

问题是C和C++,因为我和两者都工作。如果这两种语言之间的答案不同,请说明重点是哪种语言。

您可以使用以字符形式阅读字符
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;
}
#包括
#包括
内部主(空)
{ 
int-ch;
而((ch=getchar())!=EOF)/*从标准文本中读取/打印“abcde”*/
printf(“%c”,ch);
/*测试达到EOF的原因*/
if(feof(stdin))/*如果由于文件结束条件导致失败*/
puts(“到达文件末尾”);
else if(ferror(stdin))/*如果故障是由其他错误引起的*/
{
perror(“getchar()”);
fprintf(stderr,“getchar()在文件%s的第#%d\n行失败,uuu文件,uuu行u9);
退出(退出失败);
}
返回退出成功;
}
您可以使用以字符形式读取字符
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;
}
#包括
#包括
内部主(空)
{ 
int-ch;
而((ch=getchar())!=EOF)/*从标准文本中读取/打印“abcde”*/
printf(“%c”,ch);
/*测试达到EOF的原因*/
if(feof(stdin))/*如果由于文件结束条件导致失败*/
puts(“到达文件末尾”);
else if(ferror(stdin))/*如果故障是由其他错误引起的*/
{
perror(“getchar()”);
fprintf(stderr,“getchar()在文件%s的第#%d\n行失败,uuu文件,uuu行u9);
退出(退出失败);
}
返回退出成功;
}

intch;对于(;){ch=getchar();if(ch==EOF)break;putchar(ch);}
在我之前的评论中,在
break
putchar()之间添加
/*分析ch*/
什么是“我只想分析,
stdin
文件中的实际内容。”这是什么意思?这是否意味着您希望程序分析流的内容?或者,这是否意味着您只是想让程序将标准输入复制到标准,因为您实际上是要查看标准输出并对其进行分析?@EricPostpischil只是想分析
stdin
的包含字符。我不知道是否有一种不同的方法可以将包含的字符输出到终端,而不是使用
stdout
stream。C具有一次读取一个字符和一次读取多个字符的功能。C具有一次写入一个字符和一次写入多个字符的功能。程序可以一次检查和处理一个字符,也可以将它们存储在数组中并以任意方式处理它们。在C语言中,您想要什么似乎都是完全可能的。然而,您想要什么却一点也不清楚。无论以何种方式进行阅读、书写、存储或分析,似乎没有任何障碍,那么是什么阻止了你呢?
int ch;对于(;){ch=getchar();if(ch==EOF)break;putchar(ch);}
在我之前的评论中,在
break
putchar()之间添加
/*分析ch*/
什么是“我只想分析,
stdin
文件中的实际内容。”这是什么意思?这是否意味着您希望程序分析流的内容?或者,这是否意味着您只是想让程序将标准输入复制到标准,因为您实际上是要查看标准输出并对其进行分析?@EricPostpischil只是想分析
stdin
的包含字符。我不知道是否有一种不同的方法可以将包含的字符输出到终端,而不是使用
stdout
stream。C具有一次读取一个字符和一次读取多个字符的功能。C具有一次写入一个字符和一次写入多个字符的功能。程序可以一次检查和处理一个字符,也可以将它们存储在数组中并以任意方式处理它们。在C语言中,您想要什么似乎都是完全可能的。然而,您想要什么却一点也不清楚。无论以何种方式阅读、书写、存储或分析,似乎都没有任何障碍,那么是什么阻止了你呢?