C++:随笔2--I/O实践

例子1:向用户提出一个关于是否的问题?然后用户回答y/Y和n/N,并赋值给answer变量。

int main()
{
   char answer;
   cout<<"吃饭了吗?"<<"回答“是或否”<<"\n"<<endl;
   cin>>answer;
   switch(answer)
   {
      case 'Y':
      case 'y':
            cout<<"吃过了"<<"\n";
            break;
      case 'N':
      case 'n':
            cout<<"没吃过了"<<"\n";
            break;
      default:
            cout<<"输入不符合要求"<<endl;
            break;//跳出
   }
   cin.get();//伪装接收让控制台不要一闪而过,强制接收用户的输入,再退出(相当于C中的pause暂停)
   //事实上我们输入了N之后会摁下enter键,cin从缓冲区提取的是N给answer,而enter字符仍然在键盘缓冲区中,之后被cin.get()获取到(回车也是一个ASCII码),所以还是没有实现暂停仍然一闪而过,所以之前要加上一行代码,cin.ignore(100,'\n');//意思是忽略100个字符,只要。
   return 0;
}

例2:温度互相转换。(华氏温度=摄氏温度*9.0/5.0+32)

int main()
{
    const unsigned short ADD_SUBTRACT=32;//静态变量(#define和const之间区别)
    const double RATIO=9.0/5.0;//这两句用宏定义也没问题
    double tempIn,tempOut;//输入输出温度
    char typeIn,typeOut;//类型
    cout<<"输入温度格式xx.x C/xx.x F:"
    cin>>tmmpIn>>typeIn;//空格标志着下一个输入,所以这样写我可以输入两个比如:32.4 C(他会先把32.4给tempIn,空格表示本次输入结束之后是下一个输入,C给typeIn)
    cin.ignore(100,'\n');//为了摆脱其他无意义的输入的影响
//cin.ignore(1000, '\n')的含义是把缓冲区内从当前字符开始知道'\n'之前字符(如果有1000个的话)忽略掉,实际上你这里假设一行不会超过1000个字符,所以含义是忽略一行
    switch(typeIn)//判断输入的是什么类型
    {
       case 'C':
       case 'c':
           tempOut=...;
           typeOut='F';
           typeIn='C';//无论用户输入大写还是小写我们强制性转化位大写
           break;
       case 'F':
       case 'f':
           tempOut=...;
           typeOut='C';
           typeIn='F';//无
           break;
       default:
           typeIN:'E'
           break;        
    }
    return 0;
};

变量的类型和取值范围

猜你喜欢

转载自blog.csdn.net/m0_37957160/article/details/108814949