关于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存储到第一个数字