求解答,我的第一本C++书中
结构体的使用
将员工的多个属性打包成一个结构体,代码如下:
#include "stdafx.h"
#include<iostream>
#include<stdio.h>
#include<string>//cout<<...报错,没有与这些操作数匹配的 "<<" 运算符 操作数类型为: std::ostream << std::string,改正加<string>头函数
using namespace std;
// 将员工这个复杂事物的多个属性打包成一个结构体
struct Emplyee
{
string m_strName; // 姓名
bool m_bMale; // 性别
int m_nAge; // 年龄
int m_nSalary; // 工资
};
// 定义一个常量表示最大员工数
const int MAX_COUNT = 2;
int _tmain(int argc, _TCHAR* argv[])
{
Emplyee arrEmplyee[MAX_COUNT]; // 创建一个结构体数组(长度为MAX_COUNT的结构体型数组arrEmplyee,管理多个结构体变量
cout<<"请输入员工信息"<<endl; // 当前员工数
int nCount = 0;
do
{
// 接收用户输入
// 将用户输入的数据保存到结构体变量的各个成员变量
cin.clear(); //cin键盘输入
cin>>arrEmplyee[nCount].m_strName
>>arrEmplyee[nCount].m_bMale
>>arrEmplyee[nCount].m_nAge
>>arrEmplyee[nCount].m_nSalary;
// 检查是否输入完毕
if ( "end" == arrEmplyee[nCount].m_strName )
break;
// 开始输入下一个员工的信息
++nCount;
}
while( nCount < MAX_COUNT );
// 显示所有员工的信息
cout<<"员工信息:\n姓名\t性别\t年龄\t工资"<<endl;
for( int i = 0; i < nCount; ++i )
{
// 访问数组中结构体变量的成员
// 获得“员工”这个复杂事物的各种属性
cout<<arrEmplyee[i].m_strName<<"\t" //\t制表符,输出位置将横向跳格
<<arrEmplyee[i].m_bMale<<"\t"
<<arrEmplyee[i].m_nAge<<"\t"
<<arrEmplyee[i].m_nSalary<<endl;
}
return 0;
}
为什么性别输入2不行,bool类型不是输入非1或者0的数自动变为1 吗?