c++ - 使用 CString::Format 格式化长值时的错误 (??)

标签 c++ format long-integer c-strings

我对以下代码有疑问:

CString cstr;
cstr.Format("SELECT foobar %ld, %ld ",  
    " AND type = '%s' ",
    1426233870,1426243870, "'OR'");

生成的 CString 包含错误的数字!

代码被简化了,实际上我是在几秒钟内从数据库中选择两个时间戳之间的数据集。

我能够通过格式化两个字符串并将第二个附加在第一个字符串的末尾来解决我的问题,所以我不需要答案。但是,如果有人可以确认这是 CString::Format 中的错误,这可能会保护其他人免于像我一样紧张...

最好的问候

最佳答案

如果是MFC,应该是这样的:

CString cstr;
cstr.Format("SELECT 123=%ld, 456=%ld AND type = '%s' ", 123, 456, "'type'");

这就像 printf。

关于c++ - 使用 CString::Format 格式化长值时的错误 (??),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047293/

相关文章:

c++ - 我们可以存储 unordered_map<T>::iterator 吗?

python - 如何用 Python 格式化分钟/秒?

c++ - 使用 cin 和 cout 时无法正确打印字符变量

java - jdk6和jdk7相同的测试得到不同的结果

c++ - 为什么 int count 在进入循环时从 1 跳到 4? C++

c++ - 使用位置无关代码按值和指针传递

objective-c - 如何创建一个直接接受格式字符串作为参数的方法?

mysql - 格式和圆形mysql的区别

c - unsigned long 的确切取值范围是多少?

c++ - CUDA 使用 CMake 在 x86 中卡住构建