1.fopen版本
FILE *fin,*fout; fin = fopen(“Joyous.in”, “rb”); fout = fopen(“Joyous.out”, “wb”); int n; fscanf(fin,”%d”,&n);//这里读取成功就返回1 fprintf(fout,”%d\n”,n); fclose(fin); fclose(fout);
2.freopen版本
freopen(“Joyous.in”,”r”,stdin); freopen(“Joyous,out”,”w”,stdout); int n; scanf(“%d”,&n); printf(“%d\n”,n);
3.freopen重定向和fopen区别
重定向不能同时读写文件和标准的输入输出,fopen书写繁杂但是使用方便 fopen可以转换成标准输入输出,那么可以修改fin=stdin和fout=stdout,而且不可以使用fopen和fclose即可 eg: #include<stdio.h> int main() { //输入不超过10的9次方的数字,然后输出他的位数 FILE *fin=stdin,*fout=stdout;//如果改为fopen版本去点初始化,打开屏蔽即可 // fin = fopen(“test2-1.in”, “rb”); // fout = fopen(“test2-1.out”, “wb”); int n,num=0,m,i,j;//n是输入,num是位数,i,j用于循环 fscanf(fin,”%d”,&n); //printf(“%d\n”,n); for(i=1;i<=9;i++) { m=1; for(j=1;j<=i;j++){ m=m*10; if(m>n){ num=i; break; } } if(num>0)break; } fprintf(fout,”%d\n”,num); //fclose(fin); //fclose(fout); return 0; }