c++动态结构数组、文件输入输出、分支语句和循环语句

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;//命名空间要放在结构体定义之前 
const int size=50;
struct jxz//定义结构体
{
char name[size];
double price; 
};
int main()
{
cout<<"enter the name of file:";
char filename[size];
cin.getline(filename,size);//输入指定文件名 ,要从绝对路径获取文件名,比如D:\\aaa.txt 
ifstream inFile; 
inFile.open(filename);//inFile与文件相关联 
ofstream outFile;//定义文件输出对象 
outFile.open("str.txt");//outFile与文件相关联 ,输出也可以写其他路径名,比如D:\\str.txt 
if(!inFile.is_open())//检查是否可以打开文件 
{
cout<<"can not open the file:"<<filename<<endl;
exit(EXIT_FAILURE);
}
int number,i;
inFile>>number;//文件读取 
inFile.get();
jxz *p=new jxz [number];//定义动态结构数组,本质上是动态数组,只是每个数组元素类型都是结构体 
for (i=0;i<number;++i)
{
inFile.getline(p[i].name,size);//类似于cin的输入方式 ,动态结构数组用句点操作符 
inFile>>p[i].price;//如果只是动态结构的话,用指针表示的时候那么就用箭头操作符 
inFile.get();//去掉换行符 
}
int a=0;
for (i=0;i<number;++i)//for循环处理结构数组 
{
if(p[i].price>=10000)//分支语句判断 
{
if(a==0)//定义标志位,便于分类 
{
outFile<<"grand patrons:"<<endl;
a++;
}
outFile<<p[i].name<<endl;
outFile<<p[i].price<<endl;
}
}
for (a=0,i=0;i<number;++i)
{
if(p[i].price<=10000)
{
if(a==0)
{
outFile<<"patrons:"<<endl;
a++; 
} 
outFile<<p[i].name<<endl;
outFile<<p[i].price<<endl;
}
}
delete [] p;//释放指针 
inFile.close();//关闭文件 
return 0;
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~青萍之末~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值