C++读取以空格作为数据区分标记,以回车为行标记的txt文件到一个整数数组(字符串妙用)

该博客介绍了如何使用C++通过堆排序算法将一个以空格分隔、回车换行的txt文件内容读取到整数数组中,并将排序后的结果写入新的文件。博客详细解释了读取过程、字符串处理技巧以及堆排序算法的实现。
摘要由CSDN通过智能技术生成

     这次读取的就是上一篇中的original文件的每一行到一个整数数组中。

     使用getline(缺省吧回车符endl作为行标记)分别把每一行读入到一个字符串数组,在这个字符数字最后加上/0构成一个字符串;

     使用strtok函数把每行组成的字符串以空格为标记划分多个单元返回为一个char*类型值pchTok;

     然后把pchTok使用atoi转化为int类型每个存入到一个整型数组的每个单元中sortArray[i]中;

     之后把数组使用堆排序算法排序后按照对齐格式输出到另外一个文本中。void heapSort_Write()中。

     为了使用字符串函数要包含string.h;为了使用setw要包含iomanip.h。

#include "heapSort.h"
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;

#define  ARRAY_SIZE 1000
int heapcount = 0;//记录总共的比较次数

void FixHeap(int L[], int Hsize, int root, int k){
 //int larger = 0;
 if((2 * (root + 1)) > Hsize)//叶子节点
  L[root] = k;
 else{
  int larger = 0;
  if((2*(root + 1)) == Hsize)//只有左子树
   larger = 2 * root + 1;
  e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值