sscanf和sprintf(sscanf和sprintf区别)

http://www.itjxue.com  2023-01-27 16:32  来源:未知  点击次数: 

迷茫中 有关 sscanf 和sprintf() 的疑问 坐等达人解释~~~谢谢

s[0]=1

s[1]=2

s[2]=3

s[3]=4

s现在保存的不是字符串"1234".

如果改成这样就好了:

#includecstdio

#includealgorithm

#includecstdlib

using namespace std;

int main()

{

int a,i;

char s[10];

for(i=0;i4;i++)

{

scanf("%d",s[i]);

s[i]+='0';

}

s[i]=0;

sscanf(s,"%d",a);

printf("%d\n",a);

system("pause");

return 0;

}

sprintf 和 sscanf之间的区别

fscanf,sscanf,fprintf,sprintf还有scanf,printf

共同点是都是格式化输入/输出用的,它们的格式化方法/通配符都是一样的。

不同之处:

f打头的是文件I/O

s打头的是字符串I/O

俩字头都不带的是屏幕con的I/O

请采纳答案,支持我一下。

c语言sscanf和sprintf怎么用

前面的s代表string,也就是字符串,c语言的字符串其实就是字符数组,因此,将输出流的默认stdout换成自己的字符数组空间就可以将信息输出到字符数组中

char str[80] = "12 34";

int x, y;

sprintf(str, "%d %d", x, y);

将输入流默认的stdin换成自己的字符数组,就可以从字符串中读入了

sscanf(str, "%d%d", x, y);

c++中sscanf函数与sprintf函数的用法

一.sscanf 读取格式化的字符串中的数据

sscanf和scanf类似,都是用于输入的,只是后者以屏幕为输入源,而前者以固定字符串为输入。

sscanf() 是从一个字符串中读进与指定格式相符的数据

二.sprintf与printf的用法很类似,只不过是前者输出到指定的目标,后者输出到屏幕。

sprintf()指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。

int scanf(const char format [,agument])

其中format可以是一个或多个

{%[ ][width][{h | l | l64 | L}]}type

{a|b|c}表示a、b、c中选一,[d]表示d是可有可无的。

所以,format形式可以有:

%s

%5s

%[a-z]5d

注意:

%*[width][{h | l | l64 | L}]}type表示过滤满足条件的字符串,不向目标中输出。

1、基本用法,取字符串

string source0 = "1234456";

char str[521];

sscanf(source0.c_str(),"%s",str);

sscanf(source0.c_str(),"%4s",str);

2、转换为整型数

string source0 = "123456";

int x;

sscanf(source0.c_str(),"%d",x);

sscanf(source0.c_str(),"%3d",x);

3、停止和范围

sscanf(source0,"%[^a]",str); //遇到“a”停止

sscanf(source0,"%[^c]",str); //遇到“c”停止

sscanf(source0,"%[1-9A-Z]",str); //只取范围1-9和A-Z的字符

sscanf(source0,"%[^b-z]",str); //遇到“b-z”停止

sscanf(source0,"%[^c-z]",str); //遇到“c-z”停止

4、格式转换

char source[512] = "2015:8:1";

int a,b,c;

sscanf(source,"%d:%d:%d",a,b,c);

注意:这个地方a、b、c必须加引用,否则会报错。

5、复杂情况

char source[512] = "fjkdsjf/123456@fjkdsjf";

char str[512];

sscanf(source,"%*[ /]/%[ @]",str);

结果为:123456

sprintf

sprintf与printf的用法很类似,只不过是前者输出到指定的目标,后者输出到屏幕。

int sprintf(char *buffer,const char *format,...)

举个例子:

结果:

1

buf = 1

buf = 00000001

2

buf = 2

buf = 00000002

(责任编辑:IT教学网)

更多

推荐Flash实例教程文章