关于sscanf函数和sprintf函数的用法

关于sscanf函数和sprintf函数的用法

sprintf

sprintf函数原型为 int sprintf(char *str, const char *format, ...)。作用是格式化字符串,除了前两个参数类型固定外,后面可以接任意多个参数。

1、sprintf 最常见的应用之一莫过于把整数打印到字符串中

​ //把整数123 打印成一个字符串保存在s 中。

​ sprintf(s, "%d", 123); //产生"123"

可以指定宽度,不足的左边补空格:

sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"

2、控制浮点数打印格式

​ 默认保留小数点后6 位数字,比如:

​ sprintf(s, "%f", 3.1415926); //产生"3.141593"

​ sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"

sscanf

定义函数int sscanf (const char *str,const char * format,........),sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参内。

返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败 否则,表示正确格式化数据的个数 例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个变成都读入成功会返回3。 如果只读入了第一个整数到i则会返回1。

1、从b中取出连续的整数,则将b转成整数,保存到c


char b[10];
    cin>>b;
    int c;
    sscanf(b, "%d", &c);
    cout<<c;
    
    
b = "o123ab7";
得到c = 0

b = "123"
c = 123

b = "123a7"
c = 123

​ sscanf(b,"%d",&c);//如果是数字就转换b为int存储到第一个数字

posted @ 2021-04-30 17:18  JK~  阅读(405)  评论(0编辑  收藏  举报