c++ 标准流文件
一、标准流stdin,stdout,stderr
标准输入流stdin:
是程序可以读取其输入的位置。缺省情况下,进程从键盘读取 stdin 。
fscanf(stdin,"%d%d%f%s",&n1,&n2,&f1,s); //相当于 scanf("%d%d%f%s",&n1,&n2,&f1,s); scanf隐含了stdin;
标准输出流stdout:
是程序写入其输出的位置。缺省情况下,进程将 stdout 写到终端屏幕上。
fprintf(stdout,"%10d%10d%16f %s",111,222,f1,"xxxbbb"); //相当于printf("%10d%10d%16f %s",111,222,f1,"xxxbbb"); printf隐含了stdout
标准错误流stderr:
是程序写入其错误消息的位置。缺省情况下,进程将 stderr 写到终端屏幕上
fprintf(stderr,"出错了\n");//区别于printf("出错了\n");
二、流的重定向freopen
区别:stdin和stdout都可以被重定向,stderr不能
int main(void) {
char num[256]; FILE *f; f=freopen("test.txt","r",stdin); scanf("%s",&num);//fscanf(stdin,"%s",&num); printf("num=%s\n",num); fflush(stdin); f=freopen("con","r",f);//把输入流重新定向到键盘 getchar(); getchar(); return 0; }