怎样向文件写入和读写字符,字符串??
1.从键盘输入一些字符,并逐个把它们送到磁盘上去,直到用户输入一个“#”为止。
#include <stdio.h>
#include <stdlib.h>
int main()
{ FILE *fp; //定义文件指针fp
char ch,filename[10];
printf("请输入所用的文件名: ");
scanf("%s",filename); //输入文件名
getchar(); //用来消化最后输入的回车符
if((fp=fopen(filename,"w"))==NULL) //打开输出文件并使fp指向此文件
{ printf("cannot open file\n"); //如果打开出错就输出“打不开”
exit(0); //终止程序
}
printf("请输入一个准备存储到磁盘的字符串(以#结束): ");
ch=getchar(); //接收从键盘输入的第一个字符
while(ch!='#') //当输入′#′时结束循环
{ fputc(ch,fp); //向磁盘文件输出一个字符
putchar(ch); //将输出的字符显示在屏幕上
ch=getchar(); //再接收从键盘输入的一个字符
}
fclose(fp); //关闭文件
putchar(10); //向屏幕输出一个换行符
return 0;
}
2.将一个磁盘文件中的信息复制到另一个磁盘文件中。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *in,*out;//指向FILE类型文件的指针变量
char ch,infile[10],outfile[10];
printf("请输入文件的名字:\n");
scanf("%s",infile);//输入一个输入文件的名字
printf("输入输出文件的名字:\n");
scanf("%s",outfile);//输入一个输出文件的名字
if((in=fopen(infile,"r"))==NULL)//打开输入文件
{
printf("无法打开此文件\n");exit(0);
}
if((out=fopen(outfile,"w"))==NULL)//打开输出文件
{
printf("无法打开此文件\n");exit(0);
}
ch=fgetc(in);
//输入文件读入一个字符,赋给变量ch
while(!feof(in))//未遇到输入文件的结束符
{
fputc(ch,out);//将ch 写到输出文件
putchar(ch);//将ch显示到屏幕上
ch=fgetc(in);//再从输入文件读入一个字符
}
putchar(10);//ASCII码 10 代表换行
//等价printf("\n");
fclose(in);//关闭输入文件
fclose(out);//关闭输出文件
return 0;
}
3.从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE*fp;
char str[3][10],temp[10];
//str是用来存放字符串的二维数组,temp是临时数组
int i,j,n=3;
printf("Enter strings:\n"); //提示输入字符串
for(i=0;i<n;i++)
gets(str[i]); //输入字符串
for(i=0;i<n-1;i++) //用冒泡法对字符串排序
{
for(j=0;j<n-i-1;j++)
if(strcmp(str[j],str[j+1])>0)
{
strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
}
if((fp=fopen("G:\\codeblocks\\hello world\\file1.dat","w"))==NULL) //打开磁盘文件
//′\′为转义字符的标志,因此在字符串中要表示′\′用′\\′
{
printf("can′t open file!\n");
exit(0);
}
printf("\nThe new sequence:\n");
for(i=0;i<n;i++)
{ fputs(str[i],fp); //向磁盘文件写一个字符串
fputs("\n",fp); //输出一个换行符
printf("%s\n",str[i]); //在屏幕上显示
}
return 0;
}
4.从文件file1.dat中读回字符串,并在屏幕上显示。
//从文件中读回字符串,并在屏幕上显示。
#include <stdio.h>
#include <stdlib.h>
int main()
{ FILE*fp;
char str[3][10];
int i=0;
if((fp=fopen("G:\\codeblocks\\hello world\\file1.dat","r"))==NULL)
//注意文件路径必须与前相同
{
printf("can′t open file!\n");
exit(0);
}
while(fgets(str[i],10,fp)!=NULL)
{ printf("%s",str[i]);
i++;
}
fclose(fp);
return 0;
}
|