C程序设计--对文件的输入输出(案例)

版权声明:本文由 Micheal 博客 创作,转载请附带链接,有问题欢迎交流。 https://blog.csdn.net/qq_42887760/article/details/83870788

第十章

问题一(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;
}

猜你喜欢

转载自blog.csdn.net/qq_42887760/article/details/83870788