逐梦C++之二:输入与输出

C++输入与输出

1.C++输入与输出简介

C++提供了一套新的输入/输出库来替代C中的输入/输出库,新的库提供了一套更容易使用的、更灵活的、可扩展的系统(PS:具体表现在使用C++库进行输入输出时不需要进行额外的格式化);
输入:在C++中,程序的输入被看做是从键盘、磁盘文件或者其他输入源输入的一串连续的字节流;
输出:程序的输出被看做是输出到显示器、磁盘文件或者其他目标的一串连续的字节流;
当使用C++的库进行输出操作时,必须包含头文件iostream.
cin代表标准输入,cout代表标准输出,cerr代表标准出错;虽然cout和cerr的默认输出目的地都是屏幕,但是cout是带缓冲的,cerr是不带缓冲的;
关于输入操作符<<有一点需要注意的是:它同scanf一样,默认忽略前导空格,若要改变此动作需使用操纵符noskipws;
例子:

//==================================================
//程序描述:浅谈C++输入与输出之一
//Date:2016年1月10日   by  Ye_wolf
//备注:
//         本例用C++进行书写时,不需要考虑你输入/输出是何种数据类型
//==================================================

//========================【头文件部分】=============================
#include 
using namespace std;

//=========================【主函数】============================
int main()
{
    int id;
    float av;

    cout<<"请输入编号(id)和平均值(av):"<cin>>id>>av;
    cout<<"Id="<"Average="<return 0;
}

2.操纵符

C++中,操纵符主要是用来格式化输入/输出;
首先,需要说明下操纵符包含的头文件,若无参数(如hex,endl)则需要包含在头文件iostream,若有参数(如setw(),setprecision(),setfill())则需要包含在头文件iomanip;
再则,除却setw()外,其他操纵符对后面所有的输入输出都产生影响;

//==================================================
//程序描述:浅谈C++输入与输出之二操纵符
//Date:2016年1月10日   by  Ye_wolf
//备注:
//==================================================

//========================【头文件部分】=============================
#include 
#include 
using namespace std;

//=========================【主函数】============================
int main()
{
    int i=4,j=5,k=6,m=91;
    float fa=1.12,fb=10.123,fc=1000.1234,fd=1,fe=-0.556;
    char c='!',ch;

    //操纵符-----------endl:换行
    cout<<"操纵符-----------endl:换行"<cout<'\n'
            <cout<<"=================="<//操纵符-----------oct、dec和hex:八、十、十六进制
    cout<<"操纵符-----------oct、dec和hex:八、十、十六进制"<cout<<"m="<"(十进制)\n";
    cout<<"m="<"(八进制)\n";
    cout<<"m="<"(十六进制)\n";
    cout<<"如果在后面的输出不将进制改回来,则后面的输出均采用16进制"<cout<<"没改成十进制:"<"十进制数888:"<<888<"改成十进制:"<"十进制数888:"<888<cout<<"=================="<//操纵符-----------setw():设置域宽
    cout<<"操纵符-----------setw:设置域宽"<for(i=1;i<=1000;i*=10)
        cout<6)<'\n';
    cout<<"=================="<//操纵符-----------setfill():设置填充字符(当域宽大于输出项宽度时)
    cout<<"操纵符-----------setfill():设置填充字符"<cout<'*');
    for(i=1;i<=1000;i*=10)
        cout<6)<'\n';
    cout<<"=================="<//操纵符-----------setprecision():设置浮点数精度,默认值为6
    cout<<"操纵符-----------setprecision():设置浮点数精度"<cout<<"未设置精度前,各变量的值:"<cout<<"fa="<'\n'
            <<"fb="<'\n'
            <<"fc="<'\n';
    cout<<"设置精度后,各变量的值:"<cout<2);
    cout<<"fa="<'\n'
            <<"fb="<'\n'
            <<"fc="<'\n';
    cout<6);
    cout<<"=================="<//操纵符-----------left、right:左对齐、右对齐(默认右对齐)
    cout<<"操纵符-----------left、right:左对齐、右对齐(默认右对齐)"<cout<<"左对齐:"<for(i=1;i<=1000;i*=10)
        cout<'*')<6)<'\n';
    cout<<"右对齐:"<for(i=1;i<=1000;i*=10)
        cout<'*')<6)<'\n';
    cout<<"=================="<//操纵符-----------showpoint和noshowpoint、showpos和noshowpos:
    //                            强制显示小数点以及全部尾随零、不显示尾随零,若可能去掉小数点
    //                            非负数在其前面显示+号、非负数在其前面不显示+号
    cout<<"操纵符-----------showpoint和noshowpoint、showpos和noshowpos:"
        <<"强制显示小数点以及全部尾随零、不显示尾随零,若可能去掉小数点"
        <<"非负数在其前面显示+号、非负数在其前面不显示+号"<cout<cout<<"fa="<cout<<"fd="<cout<<"fe="<cout<cout<<"=================="<//操纵符-----------fixed:用定点符号表示浮点数d.ddd、scientific:用科学计数法表示浮点数
    cout<<"操纵符-----------fixed:用定点符号表示浮点数d.ddd"<cout<cout<<"fa="<cout<<"fc="<cout<<"操纵符-----------scientific:用科学计数法表示浮点数"<cout<cout<<"fa="<cout<<"fc="<cout<<"=================="<//操纵符-----------skipws、noskipws:忽略前导空白,不忽略前导空白
    cout<<"操纵符-----------skipws、noskipws:忽略前导空白,不忽略前导空白"<cin>>noskipws;
    while(cin>>ch)
        cout<cout<cout<<"=================="<return 0;
}

逐梦C++之二:输入与输出_第1张图片

3.混合使用C\C++输入/输出

在程序中同时使用C的输入/输出库函数和C++的类库会出现问题,因为这两个库中的读写操作不会自动同步。如果确实需要同时使用这两个库,应在任何输入输出函数前调用如下函数:
Ios::sync_with_stdio();

你可能感兴趣的:(逐梦C++,C++-输入与输出)