Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1708819
  • 博文数量: 171
  • 博客积分: 11553
  • 博客等级: 上将
  • 技术积分: 3986
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-25 20:28
文章分类

全部博文(171)

文章存档

2012年(2)

2011年(70)

2010年(9)

2009年(14)

2008年(76)

分类: C/C++

2008-03-11 23:15:02

#include <iostream>
#include <bitset>
#include <complex>
#include <iomanip>
#include <string>
#include <ios>
int main(int argc, _TCHAR* argv[])
{
    //格式化输出

    std::cout << "hello world" << std::endl;
    std::bitset<10> flags(7);
    std::cout << flags << std::endl;
    std::complex<float> c(1.3f,2.4f);
    std::cout << c << std::endl;

    //read wchar_t

    wchar_t wc;
    std::wcin >> wc;
    std::wcout << wc << std::endl;

    //读取C字符串

    char szBuf[8];
    std::cin >> std::setw(8) >> szBuf;
    std::cout << szBuf << std::endl;

    int x = 0;
    while(std::cin >> x)
    {
        std::cout <<x << std::endl;
    }

    char szLine;
    while (std::cin.get(szLine))
    {
        std::cout << szLine << std::endl;
    }
    read one char
    std::cout << std::cin.get() << std::endl;;
    
    //读取下一个字符到c1,返回这个字符的整数值,如果到了文件最后,返回-1

    char c1;
    std::cin.get(c1);
    std::cout << c1 << std::endl;

    //读取下一个字符1,返回这个字符的整数值,如果到了文件最后,返回-1

    char c1;
    int n = std::cin.get();
    std::cout << char(n) << std::endl;

    //读取接下来的(8-1)个字符

    char c2[8];
    std::cin.get(c2,8);
    std::cout << c2 << std::endl;


    //读取8-1个字符,或是遇到'a'或者'eof',就停止读取,读取的字符不包括eof

    char c3[8];
    std::cin.get(c3,8,'a');
    std::cout << c3 << std::endl;

    //读取一行字符,最大数目为80-1

    char c4[80];
    std::cin.getline(c4,80);
    std::cout << c4 << std::endl;

    //读取最大长度为80-1个字符,如果遇到'a'或eof,则停止,读取的字符包含eof

    char c5[80];
    std::cin.getline(c5,80,'a');
    std::cout << c5 << std::endl;

    //读取9个字符,如果遇到eof则停止

    char c6[10] = {0};
    std::cin.read(c6,9);
    std::cout << c6 << std::endl;

    //统计读取的字符个数

    char c9[9];
    std::cin.read(c9,8);
    std::cout <<std::cin.gcount() << std::endl;

    show address of a string
    std::string s1 = "hello";
    std::cout << static_cast<void*>((void*)s1.c_str()) << std::endl;

    //测试stream的状态,先输入数字,再输入字母,产生failbit错误

    std::cin.clear();
    int c7;
    while (std::cin >>c7 )
    {
        std::cout << "ok" << std::endl;
    }
    std::cout << std::cin.rdstate() << std::endl;;
    if(std::cin.rdstate() & std::ios::failbit)
        std::cout << "failbit" << std::endl;
    else if (std::cin.rdstate() & std::ios::badbit)
    {
        std::cout << "badbit" << std::endl;
    }
    else if (std::cin.rdstate() & std::ios::eofbit)
    {
        std::cout << "eofbit" << std::endl;
    }

    //stream的void*操作和!操作,正常的情况下输出"ok",出错时输出"failed"

    int c8;
    while (std::cin >> c8 )
    {
        std::cout << c8 <<std::endl;
    }

    if(std::cin)
        std::cout << "ok" << std::endl;
    else
        std::cout << "failed" << std::endl;

    if(!std::cin)
        std::cout << "failed" << std::endl;
    else
        std::cout << "ok" << std::endl;
    

    return 0;
}

阅读(1464) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:STL的IO操作之二

给主人留下些什么吧!~~