如何编写一个程序模块完成下面的任务:如果有一个文件的内容是许多国家的许多信息,要通过键盘输入一个国家的名称,使得屏幕上显示出改国家的相关信息。
谢谢大家!
具体过程如下:
(1)根据国家信息,声明一个结构体类型,用来保存每个国家的信息
(2)声明一个结构体数组,用来保存所有国家信息(参考如下)
struct StCountry
{
char name[40]; //国家名称
double pos[2]; //国家所在经纬度,pos[0]存储精度,pos[1]存储纬度
char cap[30]; //首都
//其它需要的字段
};
struct StCountry arr[1000]; //定义结构体数组,保存数据
(3)打开文件(ifstream 读取文件)
(4)根据文件中的数据存储格式逐个读取每个国家的信息,并将每个国家信息保存到结构体数组中
ifstream ifs("a.txt"); //a.txt是要读取的文件
if(!ifs.is_open())
{
cout << "文件打开失败"<<endl;
return 0;
}
int i = 0;
while(!ifs.eof())
{
//国家信息字段用空格分隔开,如果用,隔开,则需要用char变量来接收,
ifs >> arr[i].name >> arr[i].pos[0] >> arr[i].pos[1] >> arr[i].cap;
i++;
}
(5)然后,遍历整个结构体数组,查找跟输入的国家名一致的结构体,(用strcmp函数进行字符串的比较)找到后,显示该条信息
那得知道文件的内容,你才能读取出来后进行查询