第一章只是一个引入,要注意的有:

  1. std::cin在读到EOF的情形

    #include <iostream>
    int main(){
        int val;
        while(std::cin>>val){
            std::cout<<val<<" ";
        }
        std::cout<<std::endl;
        std::cout<<"after loop,val= "<<val<<std::endl;
        return 0;
    }
    

    测试发现最终结束时,输入C+D(EOF)与输入非数字,最终val的值是不一样的

    
    $ ./istest
    1
    1 $
    
    after loop,val= 0
    
    $ ./istest
    1
    1 ^D
        
    after loop,val= 1
    
    
  2. std::cout,std::cerr,std::clog的区别

    #include <iostream>
    int main(){
        std::cout<<"from cout"<<std::endl;
        std::clog<<"from clog"<<std::endl;
        std::cerr<<"from cerr"<<std::endl;
        return 0;
    }
    

    测试结果:

    $ ./istest && echo "======" && ./istest 2>hehe
    from cout
    from clog
    from cerr
    ======
    from cout
    

    总结: - cout 标准输出 - cerr 标准错误 - clog 标准错误(貌似带缓冲,没验证)