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语言中,您想要什么似乎都是完全可能的。然而,您想要什么却一点也不清楚。无论以何种方式阅读、书写、存储或分析,似乎都没有任何障碍,那么是什么阻止了你呢?