C语言文件读写练习:从键盘读入若干字符,并逐个将这些字符写入文件中,直至输入"#"结束。再将这些字符从文件中读出并显示到屏幕上。

	#include<stdio.h>
	#include<stdlib.h>
	void main()
	{
		//要求:从键盘读入若干字符,并将这些字符写入文件,直至遇到"#"结束。并从文件中读出显示。
		
		char ch = NULL;//存放用户输入的字符
		char fileName[10];//存放用户输入的文件的文件名
		FILE* fp = NULL;//指向用户写入字符的文件

		//文件准备
		printf("请输入要写入的文件名(包括后缀):");
		scanf("%s",&fileName);
		fp = fopen(fileName,"w");//以可写的方式打开文件,无则创建 
		if(!fp)//如果文件打开失败fp的值会是NULL,而在C语言中自带 #define NULL 0 即表示:NULL的值为0
		{
			printf("文件打开失败! ");
			exit(0);
		}

		//first 将字符从键盘逐个读入,同时写入文件
		printf("请输入字符,以“#”表示结束输入!\n ");

		scanf("%c",&ch);//存放用户输入的第一个字符,以便实现循环条件的初次判断
		while(ch!='#')
		{
			fputc(ch,fp);//写入用户输入的一个字符
			scanf("%c",&ch);//用户再次输入一个字符
		}

		//do{
		//	scanf("%c",&ch);//用户输入一个字符,存放在ch中
		//	fputc(ch,fp);//同时将用户输入的字符写入文件fp中  即输入一个字符就立即将该字符写入文件
		//}while(ch != '#');//直至遇到"#"结束 (弊端:# 会写入文件)

		fclose(fp);//写入后随即关闭文件,以便数据从缓冲区立即写入文件中  这一句是必要的,若无会使得后续从文件中读取数据读到的是空

		//second 将字符从文件逐个读出显示
		fp = fopen(fileName,"r");//以可读的方式 打开文件
		if(!fp)
		{
			printf("文件打开失败! ");
			exit(0);
		}
		if( ( ch = fgetc(fp) ) != EOF)//首先判断文件中是否有字符 
		{//EOF为EOF是end of file的缩写,表示文件读完了,文件位置指针指向了结尾 注意,这里的EOF是不需要引号引起来的
			while(ch != EOF)
			{
				printf("%c",ch);//读出一个字符并显示该字符
				ch = fgetc(fp);
			}			
		}
		else
		{
			printf("文件为空!");
		}
		fclose(fp);//关闭文件
		system("pause");
	}

  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值