1.输入语句: cin

    • 程序执行期间,接收外部信息的操作称程序的输入。
    • C++没有专门的输入输出语句,所有输入输出通过输入输出流实现。

      1. int a,b;
      2. cin>>a>>b; //程序在此停下,等待键盘输入变量值

      输入语句自动过滤空白字符。

    • 在缺省的情况下,cin自动跳过输入的空格,因此,cin不能讲输入的空格赋给字符型变量,也不能将输入的回车键字符赋给字符型变量。

    • 要把键盘上输入的每个字符(包括空格和回车)都作为一个输入字符赋给字符型变量,必须使用函数cin.get().

      • cin.get()从输入行中取出一个字符,并将它赋给字符型变量。该语句一次只能从输入行中提取一个字符。
      • 例:
        1. char c1;
        2. cin.get(c1);
        或者用’ ‘把要输入的字符的转义序列括起来(空格可以直接以’ ‘输入)。
    • 输入十六进制或八进制数据

      • 在缺省的情况下,系统约定输入的数据是十进制数据。当想按十六进制或八进制输入数据时,必须指明相应的数据类型:hex为十六进制、oct为八进制、dec为十进制。
      • 示例:

        1. int i,j,k,l;
        2. cin>>hex>>i; //指明输入为十六进制
        3. cin>>oct>>j; //指明输入为八进制
        4. cin>>k;
        5. cin>>dec>>1; //指明输入为十进制

        若输入为: 11 11 12 12,则i、j、k、l的十进制值为:i=17,j=9,k=10,l=12.

      • 使用非十进制输入时,要注意:

        1. 八进制或十六进制输入,只适用于整型变量,不适用与字符型变量和实型变量;
        2. 在cin中指明使用的数制输入后,则所指明的数制一直有效,直到在接着的cin中指明输入时所使用的另一数制为止;
        3. 输入数据的格式、个数和类型必须与cin中列举的变量类型一一对应。

    2.输出语句: cout

    • 程序向外部发送信息的操作称为程序的输出。

      1. int a=6;
      2. float f1=12.4;
      3. char s1[]="abcd";
      4. cout<<a<<'\t'<<f1<<'\t'<<s1<<endl;
    • cout将双引号中的字符常量按原样输出。

    • 指定输出项占用的宽度

      • 是在输出数据项之间进行隔开的方法之一,如:

        1. cout<<setw(6)<<i<<setw(10)<<j<<endl;
        2. //结果: _ _ _ _ _4_ _ _ _ _ _ _ _12

        解析:setw(6)指明其后的输出项占用的字符宽度为6,并向右对齐。

      • setw()使用注意:

        1. 在程序的开始位置必须包含头文件iomanip.h;
        2. 括号中必须给出一个表达式,指明紧跟其输出项的宽度;
        3. 该设置仅对其后的一个输出项有效。
    • 输出八、十六进制数和科学表示法的实数

      • 输出八、十六进制数方法: hex-16、oct-8、dec-10

        1. int a = 16;
        2. cout <<hex<< a << endl;
      • 输出科学表示法的实数

        • 指定按科学表示法形式输出的语句:cout.setf(ios::scientific,ios::floatfield);

          1. #include<iostream.h>
          2. void main(void)
          3. {
          4. float x = 3.14,y=100;
          5. cout.setf(ios::scientific,ios::floatfield);
          6. //表明浮点数用科学表示法输出
          7. cout<<x<<'\t';
          8. cout<<y<<endl;
          9. }
        • 与cin相同,当在cout中指明以一种进制输出整数时,对其后的输出均有效,知道指明以另一种进制输出整型数据为止。实数的输出也一样。

        • 指定按定点数格式输出的语句为:cout.setf(ios::fixed,ios::floatfield);