我对sprintf感到非常困惑,以至于不同的platfrom出现了一个有趣的问题。代码:
int main ()
{
char sql[1024];
uint32_t app_id = 32;
uint64_t task_id = 64;
sprintf(sql, "%u, %u", task_id, app_id);
printf ("%s\n", sql);
return 0;
}
结果在控制台(MSVC2010调试/释放): 64,0
但是,同样的代码在控制台(CentOS64 gcc4.4.6): 64,32
有人会帮助我的,tks!
- - - - - - -更新 - - - - - - - - - - - - -
实际上,PRIu64
在"inttypes.h"
indefined中:I64u
Windows不支持。所以我可以这样写:
sprintf(sql, "%I64u, %I32u", task_id, app_id);
使用%llu
格式字符串task_id
中sprintf()
,如下所示:
sprintf(sql, "%llu, %u", task_id, app_id);
// ^
// for: long long unsigned int
编辑:@ @Simonc建议更好地使用:PRIu32
和(由于具有Linux标记)中PRIu64
定义的宏<inttypes.h>
类似:
sprintf(sql, "%"PRIu64", %"PRIu32"", task_id, app_id);
// ^ ^
// for: uint64_t uint32_t
描述 (Description) 此函数使用FORMAT根据LIST中的值返回格式化字符串。 基本上与printf相同,但返回格式化的字符串而不是打印。 语法 (Syntax) 以下是此函数的简单语法 - sprintf FORMAT, LIST 返回值 (Return Value) 此函数返回SCALAR,一种格式化的文本字符串。 例子 (Example) 以下是显示其基本用法的示例代码 -
sprintf(格式化字符串复制) 相关函数 printf,sprintf 表头文件 #include<stdio.h> 定义函数 int sprintf( char *str,const char * format,.........); 函数说明 sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束(’\0’)为止。关
sprintf 格式化字符串复制 相关函数 printf,sprintf 表头文件 #include<stdio.h> 定义函数 int sprintf(char *str, const char *format, ...); 函数说明 sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束(’\0’)为止。关于参数fo
目录 1. 上下文 2. 过滤器 3. 小结 php常被提起的一个特性是流上下文. 这个可选的参数甚至在用户空间大多数流创建相关的函数中都可用, 它作为一个泛化的框架用于向给定包装器或流实现传入/传出额外的信息.
对于用户名和密码,我使用NameCallback和PasswordCallback。对于用户名和密码,浏览器会弹出窗口,当我输入用户名和密码时,JAAS会验证我的请求。 在wireshark上,我看到401未经授权的消息(www-authenticate header)出现,当我输入用户名/密码时,带有凭据的HTTP请求生成(带有授权header)并发送到服务器。 编辑问题: 以下是实际情况: U
问题内容: 首先,感谢任何帮助我解决此问题的人。我正在使用SQL 2005,但如果05中没有可用的解决方案,则可以使用2008。 我有一排数据看起来像这样: 因此,我要做的是每天计算每个区域的总请求量。结果应为: 我该怎么做呢?我很沮丧,没有任何谷歌搜索帮助。 问题答案: 您将需要一个Calendar表,或者可以使用CTE生成一个。一旦有了这些,其余的查询就应该变得无关紧要了。由于递归问题并且不允