CString str,fid; CString str,fid,ftemp; CString temp_big; CStringArray sum,sort_id; UpdateData(true); myfile.Open(_T("book.txt"),CFile::modeRead); myfile.Seek(m_dwPos,CFile::begin); for(int i=0;i<n && myfile.ReadString(str) != FALSE ;i++) { sum.SetAtGrow(i,str); ftemp=strtok(str.GetBuffer(0)," "); fid= strtok(NULL," "); // pNum=(LPSTR)(LPCSTR)str; sort_id.InsertAt(i,fid.Trim()); } myfile.Close(); for(int i=0;i<n;i++) { //GetAt(i)获取指定位置i处的数据,相当于数组下标[] for (int j=0;j<n-i-1;j++) { double pa,pb; pa = _tstof(sort_id.GetAt(j)); pb= _tstof(sort_id.GetAt(j+1)); if (pb<pa) { temp_big=sum.GetAt(j); sum.SetAtGrow(j,sum.GetAt(j+1)); sum.SetAtGrow(j+1,temp_big); } } } myfile.Open(_T("book.txt"),CFile::modeWrite | CFile::modeCreate |CFile::typeText);//open函数需要传两个参数,前一个是文件路径,后一个是文件的打开模式 myfile.SeekToBegin(); for(int i=0;i<n;i++) { myfile.WriteString(sum.GetAt(i)); myfile.WriteString("\n"); } myfile.Close(); OnBnClickedButton2();

时间: 2023-12-08 07:02:52 浏览: 32
这段代码是一个MFC程序,它的作用是读取一个名为"book.txt"的文本文件中的数据,将其中每一行的第二个单词(使用空格作为分隔符)作为关键字进行排序,然后将排序后的结果重新写回到同一个文件中。具体来说,这段代码做了以下几件事情: 1. 声明了一些变量,包括CString类型的str、fid、ftemp和temp_big,以及CStringArray类型的sum和sort_id。其中,CString表示一个字符串对象,CStringArray表示一个字符串数组对象。 2. 调用UpdateData(true)函数,将MFC窗口中的控件数据更新到程序变量中。 3. 调用CFile类的Open()函数打开"book.txt"文件,以只读模式打开,并将文件指针移动到指定位置。 4. 使用循环读取文件中的数据,每次读取一行数据,并将该行数据存入字符串数组sum中。同时,使用strtok()函数将该行数据按空格分割成多个子字符串,并将第二个子字符串存入fid中。然后将fid存入字符串数组sort_id中。 5. 关闭文件。 6. 使用冒泡排序算法对sort_id数组进行排序,同时将sum数组中对应的元素也进行交换。 7. 再次打开"book.txt"文件,以写入模式打开。 8. 使用循环将排序后的数据写回到文件中。 9. 关闭文件。 10. 调用OnBnClickedButton2()函数,该函数可能是用于更新界面显示的。
相关问题

CString str赋值

CString str的赋值可以通过以下方式实现: 1. 直接赋值: ```cpp CString str = "Hello world!"; ``` 2. 使用赋值运算符: ```cpp CString str; str = "Hello world!"; ``` 3. 使用格式化字符串: ```cpp CString str; str.Format("Hello %s!", "world"); ``` 4. 从另一个CString对象进行赋值: ```cpp CString str1 = "Hello world!"; CString str2 = str1; ```

CString str(str)

这是一个典型的C++代码片段,它尝试通过将一个字符串变量初始化为自身来创建一个新的字符串变量。然而,这段代码可能会导致未定义的行为。正确的做法是使用不同的变量名来创建新的字符串变量,例如: ```cpp CString strNew(str); ``` 这样可以确保正确地创建一个新的字符串对象,并将其初始化为与原始字符串相同的内容。

相关推荐

最新推荐

recommend-type

C++编程之CString、string与、char数组的转换

主要介绍了C++编程之CString、string与、char数组的转换的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下
recommend-type

CString操作大全指南

CString 对象的连接;格式化字符串(包括 int 型转化为 CString );CString 型转化成 int 型;CString 型和 char* 类型的相互转化;char* 转化成 CString;CString 转化成 char* 之一:使用LPCTSTR强制转化;...
recommend-type

将CString字符串(包含中文,字母,数字等)保存到指定路径txt文件

将CString字符串(包含中文,字母,数字等)保存到指定路径txt文件
recommend-type

CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析

CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
recommend-type

Unicode下CString与char*之间的转换(vs2008绝对实用)

在VS2008中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多...这里总结了在VS2008环境中 Unicode字符集下CString和char *之间相互转换的几种方法,其实也就是Unicode字符集与MBCS字符集转换。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。