C++输入整理

因为之前在一些机试中碰到了一些比较奇怪的输入,就又学习了一下c++的一些输入方式

  1. getline()

    c++中的getline()被定义了多次

    1. <iostream>

      cin.getline(char *);
      cin.getline(char *, int size);
      cin.getline(char *, int size, char delim); //delim
      是分隔符,默认为换行符

      cin中的getline()在遇到分隔符之后就停止读取输入流,该行剩余的字符一眼可以被读取,但不保留分隔符

    2. <string>

      string s;
      getline(cin, s);

  • getline(cin, buff);
  • for(int i=0; i<buff.size(); i++) { k = k + buff[i]; }

    以上方法可以逐字对buff中内容进行分析

  • while(getline(cin, buff)){
  • for(int i=0; i<buff.size(); i++) { k = k + buff[i]; }
  • cout << "\n"<< "\n";
  • if(k[k.size()-1]=='%')
  • break;
  • k="";
  • }

    以上方法可以通过循环读入多行字符串并进行处理

  1. get()

    c++中的有多种使用方式

    1. 不带参数的get()

      char ch;

      ch = cin.get();

      返回读取到的字符,若遇到文件结束符,返回文件结束标识符EOF,一般用-1代表EOF

    2. 单参数的get()

      char ch;

      cin.get(ch); //返回

      读取成功就返回true,不成功就返回false

    3. 3个参数的 get()

      char ch[10];

      cin.get(ch, 10, ','); //参数意义依次是 字符数组, 读取字符个数, 终止字符

      在实际使用中,读取字符个数达到限制之前,区间终止字符会停止读取,终止字符依然在输入流中

      使用单参数的get()可以获得接下来的字符

  2. cin >>

    作为很常用的格式化输入方式,这个不用多讲,主要是流提取符">>"在提取数据时通常跳过输入流中的空格、tab键、换行符等空白字符

    并且只有在输入完数据再按回车之后,该行数据才会送入到键盘缓冲区,形成输入流

    当遇到无效字符或文件结束符之后,输入流cin就会处于出错状态,对cin流的所有提取操作终止。

    cin>>a>>b; //最基本,也是最常用的用法,输入一个数字
    char a[20]; cin>>a; //
    接受一个字符串,遇"空格""TAB""回车"都结束

       

       

       

   

posted @ 2017-08-17 16:04  四处犄角  阅读(182)  评论(0编辑  收藏  举报