【C++】【动态内存】【分配文件】如何读入以回车结束的字符串

题目

文件 name.txt 中存储着 5 个字符串数组,存储格式是:先存储数据个数 n n n,接着存储 n n n 个字符串。请设计程序,对这 5 个数组按照升序排序。排序后的结果存入文件 outname.txt 中,还是按照输入时的格式存储。

name.txt :
5 beijing shanghai tianjin wuhan guangzhou
10 black white red blue yellow green pink purple gray orange
8 cat dog chick horse cow sheep bird goose
6 river mountain hill plain lake island
5 integer float double char bool

知识点:

(文件读写问题)如何读入以回车结束的字符串
参考博客:C++中文件流(fstream)的使用方法及示例

代码

#include <iostream>
#include <fstream>
using namespace std;
typedef struct name{
	int num;
	char s[200];
}NAME;
int main()
{
	NAME* members = new NAME[5];
	int i,j;
	ifstream siFile("name.txt");
	for(i=0;i<5;i++)
	{
		siFile >> members[i].num;
		siFile.get(members[i].s,200,'\n');//以回车结束 
	}
	siFile.close();
	
	for (i=0;i<5;i++)
		for(j=i+1;j<5;j++)
		{
			if(members[i].num > members[j].num)
			{
				NAME m=members[i];
				members[i]=members[j];
				members[j]= m;
			}
		}
	ofstream soFile("outname.txt");
	for(i=0;i<5;i++)
	{
		soFile << members[i].num;
		soFile << "\t";
		soFile << members[i].s;
		soFile << endl;
	}
	soFile.close();
	delete[]members;
	return 0;	
}

输出outname.txt

5 beijing shanghai tianjin wuhan guangzhou
5 integer float double char bool
6 river mountain hill plain lake island
8 cat dog chick horse cow sheep bird goose
10 black white red blue yellow green pink purple gray orange

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值