• 2005-09-13

    cin循坏输入使用注意 - [C&C++]

    cin 循坏输入字符三个方法 cin>>  or  cin.get(char ch)  or cin.get()

    1. 利用cin>> 输入字符时.cin将忽略空格和换行符,因此输入中的空格没有被回显,也不会被计数

          char ch;

          int count=0;

           cin>>ch;

           while(ch!='#')

         {

             cout<<ch;

            ++count;

            cin>>ch;    

        } 

     2.使用cin.get(ch).检查每个字符,包括空格,制表符,换行符. c语言用者会感到奇怪,为什么ch传入的不是指针而可以改变ch的值,适应为get()方法的参数定义为引用(c++的特性).

          char ch;

       

     4.检测输入的结束:EOF

         dos 里面可以用ctrl+z  linux里面可以用ctrl+d 来模拟

        对于cin.get(char ch) 如果读到EOF 它将设置eofbit和failbit为1.我们可以用cin.eof() 或者cin.fail() 来判断. cin.get(ch) 返回的cin在判断中也会转为false. 所以有如下判断方法:

         while(cin.fail()==false)   or  while(cin.get(ch))

        对于模拟键盘的可能我们在使用ctrl+d 后还是需要进行输入.因此我们需要使用cin.clear() 恢复输入输出

        

          int count=0;

           cin.get(ch);

           while(ch!='#')

         {

             cout<<ch;

            ++count;

            cin.get(ch);    

        } 

    3. 利用cin.get() 方法与c语言的getchar() 比较类似. 返回一个字符

        注意的是cin.get() 返回的值需赋值给int 型数据参数.显示时强制转化为char

         int ch;

          int count=0;

         while((ch=cin.get(ch))!=EOF)

         {

             cout.put(char(ch));

            ++count;

        } 

    分享到:

    历史上的今天: