C语言中的文件操作
12.1请编写一个程序,把一个文件的内容复制到另一个文件中。
程序如下:
#include <stdio.h>
main()
{
char ch;
FILE *fp1;
FILE *fp2;
if((fp1=fopen("C:\\Users\\acer\\Documents\\1.txt","r"))==NULL)
{
printf("The can not open!");
exit(0);
}
if((fp2=fopen("C:\\Users\\acer\\Documents\\2.txt","w"))==NULL)
{
fgets和fgetc的区别printf("The can not open!");
exit(0);
}
ch=fgetc(fp1);
while(!feof(fp1))
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
运行结果:
12.3请编写一个程序,比较两个文件,如果相等则返回0;否则返回1。
程序如下:#include <stdio.h>
main()
{
FILE *f1,*f2;
char a,b,c;
int x;
printf("input strings for file1\n");
f1=fopen("file1","w");
while((c=getchar())!= EOF)
putc(c,f1);
fclose(f1);
printf("output strings for file1\n");
f1=fopen("file1","r");
while((c=getc(f1))!= EOF)
printf("%c",c);
fclose(f1);
printf("\n\ninput strings for file2\n");
f2=fopen("file2","w");
while((c=getchar())!= EOF)
putc(c,f2);
fclose(f2);
printf("\noutput strings for file2\n");
f1=fopen("file2","r");
while((c=getc(f2))!= EOF)
printf("%c",c);
fclose(f2);
f2=fopen("file2","r");
getch();
}
运行结果:
12.4请编写一个程序,将一个文件添加到另一个文件中去。
程序如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *f;
system("mkdir D:\\abc\\def");
if((f=fopen("D:\\abc\\1.txt","wb"))==NULL)
{
printf("\nopen file error");
getchar();
exit(1);
}
fputs("test",f);
fclose(f);
return 0;
}
运行结果:
打开文件:
12.8请编写一个程序,创建一个有序文件,用来存储5种产品信息,这些信息包括产品编码,定价和库存数量,应显示恰当的错误消息。
程序如下:
#include <stdio.h>
main()
{
FILE *fp;
int number,quantity,i;
float price;
char item[10];
fp=fopen("PRODUCT","w");
printf("input product data \n\n");
printf("Item name Number Price Quantity\n");
for(i=1;i<=5;i++)
{
scanf("%s %d %f %d",item,&number,&price,&quantity);
fprintf(fp,"%s %d %.2f %d\n",item,number,price,quantity);
}
fclose(fp);
getch();
}
运行结果:
打开文件:
问题一:
从一个磁盘文件顺序读入字符并在屏幕上显示。
Answer:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
FILE *fp;
if((fp=fopen("1d.txt","r"))==NULL) //从文件1.txt中读取数据。
{
printf("The file can not be read!");
exit(0);
}
ch=fgetc(fp);
while(ch!='#')
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
问题二:
从键盘输入一些字符,逐个把它们送到磁盘上去,知道输入一个#为止。
Answer:
#include <stdio.h>
void main()
{
char ch;
FILE *fp;
if((fp=fopen("2.txt","w"))==NULL) //将屏幕中输入的字符输入到2.txt。
printf("The file can not open!");
ch=fgetc(stdin);
while(ch!='#')
{
fputc(ch,fp);
ch=fgetc(stdin);
}
fclose(fp);
}
问题三:
将一个磁盘文件中的数据复制到另一个磁盘文件中。
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
FILE *fp1;
FILE *fp2;
if((fp1=fopen("1.txt","r"))==NULL) //将文件1.txt中的内容复制到2.txt中。
{
printf("The can not open!");
exit(0);
}
if((fp2=fopen("2.txt","w"))==NULL)
{
printf("The can not open!");
exit(0);
}
ch=fgetc(fp1);
while(!feof(fp1))
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
若从命令行DOS中运行可将程序修改如下:
#include <stdio.h>
#include <stdlib.h>
void main(int argc,char * args[])
{
char ch;
FILE *fp1;
FILE *fp2;
if(argc!=3)
{
printf("The parameters are wrong!");
exit(0);
}
if((fp1=fopen(args[1],"r"))==NULL)
{
printf("The can not open!");
exit(0);
}
if((fp2=fopen(args[2],"w"))==NULL)
{
printf("The can not open!");
exit(0);
}
ch=fgetc(fp1);
while(!feof(fp1))
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
加入源文件为main.cpp,经编译以后会到一个的文件,在命令行中切换到exe文件所在的目录,并打入 2.txt即可。可用和检验是否执行。
问题一:从键盘输入4个学生的有关数据,然后把他们转存到磁盘文件中去。
Answer:
#include <stdio.h>
#include <stdlib.h>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论