【C语言-16】将内容输出在文件中
1、打开C-Free,新建文件。
2、输入以下内容:
#include<stdio.h>
main()
{
int i,j;
FILE *p;
p=fopen("九九乘法表.txt","w");
for(i=1;i<=9;i++){
fprintf(p,"\n");
for(j=1;j<=9;j++)
fprintf(p,"\t%dX%d=%d",j,i,i*j);
}
}
3、点击保存cpp文件(注意:要记住保存的位置!)
4、点击运行,会发现没有任何结果。
5、这是因为程序中只在txt文件里写入数据,因此,打开刚刚保存cpp文件的文件夹,会发现里面多出一个九九乘法表.txt文件,这便是刚才程序写入数据的文件。
1、在进行文件有关操作时要定义一个文件指针,如:FILE *p;便定义了一个名为p的文件指针变量。
2、接下来是打开文件:
p=fopen("九九乘法表.txt","w");便指以只写方式打开九九乘法表.txt文件。
其中,"W"是只写的意思,另外还有其他的,如:
r 只读
a 在后文追加
rb 二进制文件,只读
wb 二进制文件,只写
ab 二进制文件,追加。
另外,写入文件的文件类型不一定非要是txt文件,还可以是dat等其他文件。
3、接着是fprintf函数,与printf函数用法差不多唯一的区别是fprintf前必须加上指针变量,即:fprintf(指针变量,”内容“,参数);
通俗地说,fprintf便是在文件中打印字符。
4、另外:相对fopen函数,还有fclose函数,作用是关闭文件,如:pclose(p);便是关闭指针p所指向的文件。
1、在最后,附上一个输出百年历到txt文本的程序:
#include<stdio.h>
int year=2000;
int xc=5;
FILE *fp;
int mon(int m)
{
int i=1,ml,xcl;
if(m==1|m==3|m==5|m==7|m==8|m==10|m==12)ml=31;
else if(m==4|m==6|m==9|m==11)ml=30;
else if(m==2&((year%4==0&year%100!=0)|year%400==0))ml=29;
else ml=28;
if(i==1&(xc==-1|xc==6)){
fprintf(fp,"\n%d年 %d月\n 日 一 二 三 四 五 六\n 0%d",year,m,i);
i++;
goto L1;
}
fprintf(fp,"\n%d年 %d月\n 日 一 二 三 四 五 六\n",year,m);
for(xcl=xc+1;xcl>0;xcl--)fprintf(fp," ");
i=1;
L1: for(;i<=ml;i++){
if((xc+i)%7!=0&i<10)fprintf(fp," 0%d",i);
else if(i==1&(xc==-1|xc==6));
else if((i+xc)%7!=0&i>=10)fprintf(fp," %d",i);
else if((i+xc)%7==0&i<10)fprintf(fp,"\n 0%d",i);
else fprintf(fp,"\n %d",i);
}
fprintf(fp,"\n");
}
int monp(int m)
{
if(m==1|m==3|m==5|m==7|m==8|m==10|m==12)xc=xc-4;
else if(m==4|m==6|m==9|m==11)xc=xc-5;
else if(m==2&((year%4==0&year%100!=0)|year%400==0))xc=xc+1;
if(xc<-1)xc=xc+7;
}
main()
{
int i;
fp=fopen("百年历.txt","w");
for(;year<=2100;year++)
for(i=1;i<=12;i++){
mon(i);
monp(i);
}
fclose(fp);
}