【stdout,stdin】标准文件指针与重定向

本文详细介绍了C语言中的标准流文件,包括标准输入、标准输出和标准错误,以及如何使用stdio.h中的函数进行重定向,实现输入输出的自定义路径。通过实例展示了文件指针的使用和标准I/O函数的调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stdio.h 文件把3个文件指针与3个C程序自动打开的标准文件进行了关联。这三个就是标准流文件。

 

标准文件

文件指针

默认值

标准输入

stdin

键 盘

标准输出

stdout

显示器

标注错误

stderr

显示器

 

重定向指的是修改标准流文件的默认值,实现输出或输入到自己指定的地方去(freopen)

#include<stdio.h>
int main()
{
    printf("This will go into screen.\n");  //这条语句默认打印到屏幕上 

    if(freopen("D:\\Hello.txt", "w", stdout) == NULL)   //重定向,将标准输出定位文件 Hello.txt
        fprintf(stderr,"error redirecting stdout\n");
    printf("This will go into a file.\n");  //这条语句将会打印到文件中

    fclose(stdout);
    return 0;
}

 

这些指针都是 FILE 指针类型,所以可以被用作标准I/O函数的参数。

#include<stdio.h>
int main(){
	fprintf(stdout,"Hello World");
	return 0; 
}

运行结果:

 

#include<stdio.h>
#include<stdlib.h>

int main(){
	char s[20];
	fscanf(stdin,"%s",s);    //从键盘上获取一个字符串赋给s,以'\0'结尾代表结束
	fprintf(stdout,s);       //将s打印到屏幕
	return 0; 
}

运行结果:

 

#include<stdio.h>
#define MAXSIZE 50
int main(){
	char line[MAXSIZE];
	while(fgets(line,MAXSIZE,stdin) != NULL && line[0]!='\n'){    // stdin 从键盘获取的标准输入,以'\n'换行结尾为结束
		fputs(line,stdout);                                        // stdout 向屏幕输出的标准输出 
	}
	/*
	    如果你在新的一行起始处键入回车键,
	    fgets()函数读入换行符然后把它放进数组line的第一个元素中
		那么while循环将停止 
	*/
	return 0;
}

运行结果:

不输入任何信息并回车

 

参考书籍:

《C Primer Plus (第五版)》Stephen  Prata    云巅工作室译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值