sprintf和sscanf

sprintf

函数声明如下:

int sprintf ( char * str, const char * format, ... );

与printf类似将format后各参数按照format定义的形式转换成一个字符串,不同于printf的是不打印出来,而是存入str指向的缓冲区中。默认将nul补充到字符串末尾,使用时注意缓冲区大小(snprintf)。

返回值:

成功时,返回所写的字符总数。此计数不包括自动附加到字符串末尾的nul字符。

失败时,返回一个负数。

sscanf

函数声明如下:

int sscanf ( const char * s, const char * format, ...);

从s中读取数据,并根据参数格式将数据存储到附加参数指定的位置,就像使用scanf一样,但是从s中读取数据而不是标准输入(stdin)。

返回值:

成功时,函数返回成功填充的参数列表中的项数。该计数可以匹配预期的项数,匹配失败的情况下小于(甚至为零)。

 

示例:

将字符串转整形:

int main()
{
    char *buf = "10000";
    int a = 0;
    sscanf(buf, "%d", &a);
    a += 1000;
    cout << a << endl;
    return 0;
}
//11000

将整形转字符串:

int main()
{
    int a = 10000;
    char buf[1024];
    sprintf(buf, "%d", a);
    string s(buf);
    cout << s << endl;
    return 0;
}
//10000

 

posted @ 2019-07-06 15:20  大白的攻城狮  阅读(200)  评论(0)    收藏  举报