【C】文件读写问题
来源:互联网 发布:js九九乘法表详解 编辑:程序博客网 时间:2024/05/05 23:29
C语言对文件操作的部分有可能被考到,虽然比较冷门,但是还是有了解的必要的。
题目是这样的:有两个磁盘文件“c:\A.txt"与“c:\B.txt",各存放一行字母,要求把两个文件的信息合并,并且按字母顺序排列,输出到c:\C.txt中。比如:
在C盘中有:
“c:\A.txt"中有字母如下:
“c:\B.txt"中有字母如下:
程序运行完之后,在C盘会多出一个c:\C.txt,里面的结果是这样:
本题的代码如下:
#include<stdio.h>#include<stdlib.h>void main(){char s[80];char c;int i=1,j;FILE *fp;//A文件的读取if((fp=fopen("C:\\A.txt","r"))==NULL){printf("Can't open this file\n");exit(0);}while((c=fgetc(fp))!=EOF){//将A中的字符一个字符一个字符地读入到s[80]字符数组里面s[i]=c;i++;}//B文件的字符追加读取到s[80]字符数组里面if((fp=fopen("C:\\B.txt","r"))==NULL){printf("Can't open this file\n");exit(0);}while((c=fgetc(fp))!=EOF){s[i]=c;i++;}s[i]='\0';//读完文件,写完字符串封口是必不可少的//冒泡排序for(i=1;s[i]!='\0';i++){for(j=1;s[j]!='\0';j++){if((s[j]>s[j+1])&&(s[j+1]!='\0')){s[0]=s[j];s[j]=s[j+1];s[j+1]=s[0];}}}//打开C文件进行输出fp=fopen("C:\\C.txt","w+");for(i=1;s[i]!='\0';i++){//s[0]作为数据交换的临时空间fputc(s[i],fp);}fclose(fp);}
这里的话,其实C语言对文件的操作也不难,虽然对文件操作的方式有多种,但是这样记住最基本的操作文件的方式即可。
比如,首先你要通过FILE* 声明一个文件指针。并且用fopen将这个指针指向要打开的文件。其中fopen后的第二个参数:
r为单纯的读取,
w+为覆盖写入,如果要求追加写入则为a+。
操作完文件之后需要用fclose方法清空这个文件指针。
通过文件指针对文件操作也容易,利用fgetc来获取文件中的一个字符,fputc向文件输出一个字符。
读取到字符一般存放到字符数组里面,进行进一步的操作,输出字符,则是对字符数组进行遍历,fputc的第二个参数为文件指针,指明要输出到文件。
0 0
- 【C】文件读写问题
- C/C++读写文件相关问题整理
- windows下c库读写文件问题
- 【C/C++】文件读写
- WinCE下用C库函数读写文件的问题
- 关于C/C++使用stdio读写文件的问题
- win7的C盘文件不能修改读写问题
- C 文件读写 容易疏忽的一个问题
- C语言对文件的交替读写问题
- 关于c语言文件读写最后一行重复的问题
- c语言读写文件
- 文件读写(c)
- C#-读写INI文件
- [C++]文件读写操作
- C#读写INI文件
- C 读写文件
- C读写ini文件
- c#FileStream文件读写
- mybatis执行批量更新batch update 的方法(oracle,mysql)
- Java获取外网ip地址
- js闭包总结
- Ubuntu下的nfs安装和配置
- 100. Same Tree
- 【C】文件读写问题
- 如何准备SCI论文
- Java基础之修饰符与关键字
- 【Android】Item高度固定下动态设置ListView的高度
- leetcode Longest Common Prefix不同字符串的公共前缀
- JavaScript 注释规范
- 如何用awk过滤最后一行的?
- [POJ 3261]Milk Patterns
- 软件开发的版本