C++中cin的输入分隔符问题及相关

1、C/C++中的类型转换函数(区分类中的类型转换构造函数):

  头文件:C中stdlib.h  C++中cstdlib

  atof(将字符串转换成浮点型数)

  atoi(将字符串转换成整型数)

  atol(将字符串转换成长整型数)

  strtod(将字符串转换成浮点数)

  strtol(将字符串转换成长整型数)

  strtoul(将字符串转换成无符号长整型数)

  toascii(将整型数转换为合法的ASCII码字符)

  toupper(将小写字母转换成大写字母)

  toupper(将大写字母转换成小写字母)

2、默认的输入是以空格、tab、换行符作为分隔符的,但如果要输入一组数据,

以逗号或者别的字符作为分隔符是怎么办呢?

  我将其分为两种情况:

    1、如果输入的一组类型都相同的数值型

      那么可以在输入的时候,用一个字符去接收分隔符

      例如:

        int a,b,c,d;

        char sep;

        cin>>a>>sep>>b>>sep>>c>>sep>>d;

        输入:52,53,56,57

        ---------------------------------------------------

        float a,b,c,d;

        char sep;

        cin>>a>>sep>>b>>sep>>c>>sep>>d;

        输入:52.1,53.2,56.3,57

    2、如果输入的一组类型不相同

      那么就必须利用类型转换函数(这些数据中的字符不能包含分隔符)

      例如:

        string name;

        int age;

        string schnum;

        int a;

        getline(cin,name,',');

        getline(cin,a,',');

        getline(cin,schnum);

        age=atoi(a);

        ---------------------------------

        输入:Jack,18,2014223355

    3、ostream_iterator

      头文件:iterator

      使用:ostream_iterator<int> output(cout, " ");  // 分隔符为双引号

         vector<int> v

         copy(v.begin(),v.end(),output);