读书人

sprintf_s参数有关问题?

发布时间: 2013-09-10 13:42:18 作者: rapoo

sprintf_s参数问题??
本帖最后由 u012043285 于 2013-09-09 12:15:34 编辑 我得知sscanf_s的参数,如果是字符串,则需要给出字符串的长度,如:

char sz[256] = { "123" };
char szOut[256];
sscanf_s(sz, 256, "%s", szOut, 256);

可是sprintf_s这样做却会崩溃,那sprintf_s的格式化参数如果是字符串,不需要给出其长度么??
sprintf_s(sz, "%s", "456"); 这样就行?
而不是sprintf_s(sz, "%s", "456", strlen("456")+1); ??
[解决办法]
需要修改的内存空间才需要指定长度
sprintf_s有2个重载,一个是输出到字符数组的,不需要指定长度因为数组自带长度,另一个是字符指针+长度的
sprintf_s(szOut, 256, "%s", "456")
第一个参数需要指定长度,后面的都不需要

读书人网 >C++

热点推荐