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

来源:互联网 发布:javassm开源项目源码 编辑:程序博客网 时间:2024/05/22 06:51
#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");}

阅读全文
0 0