文件读写问题 以及整数排序问题
来源:互联网 发布:淘宝怎么买岛国视频 编辑:程序博客网 时间:2024/05/16 06:54
题目:文件中有一组整数,要求排序后输出到另一个文件中。
本文考察两个方向,一个是文件读写操作,另外一个是排序。
关于排序这里就不详细说了,这里采用快速排序的方法。主要讲一下文件(文本文件)的读写操作问题,二进制文件先忽略,在大多面试题里面也不是特别需要:
一c++中文件基本的读写:
c++中三个文件类:
fstream //文件流
ifstream //读文件流
ofstream//写文件流
使用它们的时候需要加入各自的头文件。
ifstream 类似于cin,以本文为例,我们要将input.txt中的整数读入到a[100]中,则可以这样做
ifstream infile("input.txt");//用构造函数打开input,也可以ifstream infile; infile.open("input.txt");if (infle) while (infile>>a[i]) //开始我喜欢在这里写成infile>>a[i++];但是会导致i在最后一次无效的时候也++导致统计长度的时候有问题。 i++;
我们可以看到>>符号在执行一次之后,infile就会往前进一个,其中infile是以空格和回车等符号作为间隔的。
写文件的方法
ofstream outfile("output.txt"); //打开文件 for (int j =0 ;j <num;j++) {outfile<<a[j]<<" "; //写文件cout <<a[j]<<" "<<j<<endl;}outfile.close();
二 c语言的文件读写
读文件:
int a[100]; int num=0; FILE *infile; infile = fopen("input.txt", "r"); //打开文件 while(!feof(infile)) { fscanf(infile, "%d", &a[num]); //读取文件printf("%d \n", a[num]); num++; } fclose(infile);
从里面可以看出面向过程和面向对象的区别,面向过程只是一个个独立的操作,必然fopen ,fscanf已经下面的fprintf,只是定义了一系列的操作对于文件,但是c++的面向对象则是先建立一个ifstream对象,然后所有的操作都是对象内部的操作,可以好好体会体会。
另外注意的是scanf 和fscanf 的最后一个参数都是指针。因为要改变一个数字必须传指针,c语言中。
写文件
FILE *outFile; outFile = fopen("output.txt", "w"); for (int j =0 ;j <num;j++) { fprintf(outFile,"%d ", a[j]); }
不用太多接受fprintf和prinft和类似,注意空格。而且最后一个参数不用指针,不用改变参数内容。
三排序内容,这里不做太多讲述,直接上代码了。
void swap (int &a ,int &b){ int tmp = a; a = b; b = tmp;}int partion(int *a, int start ,int end){ int key = a[end]; int lastNumber = end; while (start < end) { while (a[start] <= key && start <end) start++; while (a[end] >= key && start <end) end--; if (start <end)swap(a[start],a[end]); } swap(a[start],a[lastNumber]); return start;}void quicksort(int *a, int start ,int end){ if (end > start){int position = partion(a, start ,end);quicksort(a, start, position-1);quicksort(a, position+1, end); }}
4 完整的代码太长,就不放出来了,有人需要可以直接找我要。
- 文件读写问题 以及整数排序问题
- 读写的文件以及拆分字符串的小问题
- 文件读写的问题
- 文件读写断点问题
- 文件读写的问题
- 【C】文件读写问题
- 文件读写问题
- 安卓中读写权限问题以及修改读写权限问题
- 整数写入文件的问题
- [VB.NET]文件读写问题
- J2ME中的文件读写问题
- 再看文件读写性能问题
- CStdioFile读写文件的问题
- 文件的读写位置问题
- 关于文件的读写问题
- 文件读写的编码问题
- python文件读写换行问题
- pandas读写文件乱码问题
- 软件测试,想说爱你不容易(from 51testing)
- ALL about SYSDBA and SYSOPER Privileges in Oracle [ID 50507.1]
- mysql负载均衡完美解决方案
- 称呼大全,亲戚称呼,祖宗十八代的称呼!
- AAC ADTS格式分析
- 文件读写问题 以及整数排序问题
- Tomcat的JVM设置和连接数设置
- <iframe>用法及在后台管理界面一个应用
- log4j.properties 文件内容
- js去除重复字符串
- 移动平台操控读取XML!
- Linux环境VNC服务安装、配置与使用
- 2013-04-08
- apache cxf wsdl2java 简单应用