#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> //stdin:标准输入文件指针,系统分配为键盘。
//stdout:标准输出文件指针,系统分配为显示器。
//stderr:标准错误输出文件指针,系统分配为显示器。
//stderr和stdout分配的都是显示器,但是stdout可以重定向输出到别的文件中,而stderr只能输出到显示器上,不可以重定向
void main(){
printf("\n----------fprintf-----------------\n");
printf("舞榭歌台风流总被雨打风吹去!\n");
fprintf(stdout,"舞榭歌台风流总被雨打风吹去!\n");
//显示器当作一个文件来操作
//printf就是fprintf的特例,printf只能输出到显示器上,而fprintf可以往任何文件输出 printf("\n-----------fputs----------------\n");
puts("琼楼玉宇,高处不甚寒!\n");//输出字符串
fputs("琼楼玉宇,高处不甚寒!\n", stdout);
//puts就是fputs的特例,puts只能输出到显示器上,而fputs可以往任何文件输出 printf("\n-----------fputc----------------\n");
putchar('A');//输出一个字符
printf("\n");
fputc('A', stdout);
printf("\n");
//putchar就是fputc的特例,putchar只能输出到显示器上,而fputc可以往任何文件输出 printf("\n-----------fscanf----------------\n");
/*int num = 0;
scanf("%d",&num);
printf("num==%d\n",num); int numA = 0;
fscanf(stdin,"%d", &numA);
printf("numA==%d\n", numA);*/
//scanf就是fscanf的特例,scanf只能扫描键盘,而fscanf可以扫描任意文件 printf("\n-----------gets----------------\n");
//char str1[30] = {0};
////gets(str1);//获取键盘输入的字符串,存储到str1中
//fgets(str1, sizeof(str1)-1, stdin);//可以通过任何文件读取字符串,
////fgets(数组指针,字符串的长度,显示器);sizeof(str1)-1是因为要去掉字符串末尾的'\0'
//fputs(str1, stdout);
//gets就是fgets的特例 printf("\n-----------getchar----------------\n");
//char ch = '\0';
////ch = getchar();//getchar()从键盘缓冲区获取一个字符,存入变量
//ch = fgetc(stdin);//fgetc可以从任意文件获取一个字符
//fputc(ch, stdout);
//getchar就是fgetc的特例 printf("\n-----------_getw----------------\n");
//宽字符文件操作函数
int w = _getw(stdin);//_getw()每次必须获取4个字节
//_getw()如果输入少于4个字节,他会一直等待---特别注意,回车符也是算一个字符的
_putw(w,stdout);//_putw()没出会输出四个字节,不足的以空字符处理
//_getw()获取2个汉字,1个汉字2字节,int用于装载两个汉字的二进制 system("pause");
}