zoukankan      html  css  js  c++  java
  • C++中读入以“,”分隔的数据

    网上看到的都是是整行读入,然后处理!

    方法

    读入到string类型的一个对象,然后替换string中的“,”为空格或者其他想要的分隔符;

    然后使用修改后的string初始化一个stringstream,逐个的将数据读入到目标的对象中去。

    2011.6.25

    看到有好心人给我回复,说可以使用strtok()函数,所以我就查找了关于这个函数的相关知识,学习学习~

     原型:char *strtok(char *s, char *delim);
    功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。
    说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。
    返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

    注意:会改变原来的字符串!!!

    例子:

    #include <stdio.h>
    #include <string.h>
    int main(int argc,char **argv)
    {
    char buf1[]="aaa, ,a, ,,,bbb-c,,,ee|abc";
    /* Establish string and get the first token: */
    char* token = strtok( buf1, ",-|");
    while( token != NULL )
        {
    /* While there are tokens in "string" */
            printf( "%s ", token );
    /* Get next token: */
            token = strtok( NULL, ",-|");
        }
    return 0;

     

    但是,这个函数不能解决我想要解决的问题:因为我想要分割是一系列的数据(比如30 、2.5等),这样子分割后,得到的还是字符串。

    C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。以下列举了各函数的方法及其说明。

    atof():将字符串转换为双精度浮点型值。

    atoi():将字符串转换为整型值。

    atol():将字符串转换为长整型值。

    strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。

    strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。

    strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

    注意:缺点就是,如果转换不成功,返回0(这与值如果是0的结果一样)

    还有介绍到一种方法:使用sscanf函数(与之对应,sprintf函数)。

    例子:

      char    str[] = "15.455";
        int     i;
        float     fp;
        sscanf( str, "%d", &i );         // 将字符串转换成整数   i = 15
        sscanf( str, "%f", &fp );      // 将字符串转换成浮点数 fp = 15.455000
        //打印
        printf( "Integer: = %d ",  i+1 );
        printf( "Real: = %f ",  fp+1 ); 
        return 0;

  • 相关阅读:
    阿里云ssh断开处理办法
    OSSIM安装使用教程(OSSIM-5.6.5)
    MySQL字符串列与整数比较
    Linux获取so/ko文件版本号教程
    Linux服务器后门自动化查杀教程
    最强半自动化抓鸡工具打造思路
    渗透测试报告中的那些名词解释
    ELK+MySQL出现大量重复记录问题处理
    Python3+SQLAlchemy不使用字段名获取主键值教程
    Python3+SQLAlchemy+Sqlite3实现ORM教程
  • 原文地址:https://www.cnblogs.com/growup/p/2074537.html
Copyright © 2011-2022 走看看