第十章
问题一(fputc()函数的使用)
从键盘中输入一些字符,逐个把他们送到磁盘上去,直到用户输入一个’#'键为止;
#include<stdio.h>
#include<stdlib.h>//用于 exit(0);
int main(){
FILE * fp;
char ch,filename[10];
printf("请输入文件名: ");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL){
printf("无法打开此文件");
exit(0);
}
ch=getchar();
printf("请输入内容:\n");
ch=getchar();
while(ch!='#'){
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
fclose(fp);
putchar(10);
return 0;
}
问题二(fputc()和fgetc()函数的使用)
文件的复制
#include<stdio.h>
#include<stdlib.h>//用于 exit(0);
int main(){
FILE * in, * out;
char ch,filename1[10],filename2[10];
printf("请输入被复制的文件名:");
scanf("%s",filename1);
printf("请输入复制后的文件:");
scanf("%s",filename2);
if((in=fopen(filename1,"r"))==NULL){
printf("无法打开%s",filename1);
exit(0);
}
if((out=fopen(filename2,"w"))==NULL){
printf("无法打开%s",filename2);
exit(0);
}
while (!feof(in))
{
ch=fgetc(in);
fputc(ch,out);
putchar(ch);
}
putchar(10);
fclose(in);
fclose(out);
return 0;
}
问题三(fputs()、fgets()的用法)
从键盘中输入若干字符串,并对他们按字母大小的顺序排序,然后把排好序的字符串送到磁盘上去
#include<stdio.h>
#include<stdlib.h>//用于 exit(0);
#include<string.h>//用于strcpy(),strcmp()
#define N 3
int main(){
FILE *fp;
char str[N][20],temp[20],filename[20];
//printf("请输入被复制的文件名:");
//scanf("%s",filename);
if((fp=fopen("D:\\AAABBB\\TXTFile\\data.txt","w"))==NULL){
printf("无法打开%s",filename);
exit(0);
}
printf("请输入字符串:\n");
for(int i=0;i<N;i++){
gets(str[i]);
}
int min;
//选择排序法
for (int i = 0; i < N-1; i++){
min=i;
for (int j = i+1; j < N; j++){
if(strcmp(str[min],str[j])>0)
min=j;
}
if(min!=i){
strcpy(temp,str[i]);
strcpy(str[i],str[min]);
strcpy(str[min],temp);
}
}
printf("排序后的字符数组(二维)\n");
for (int i = 0; i < N; i++){
fputs(str[i],fp);
fputc('\n',fp);
puts(str[i]);//等于 printf("%s",str[i]);
}
fclose(fp);
putchar(10);//等于 printf("\n");
return 0;
}
推荐博客