请勿使用sprint_s
(或其他格式字符串系列)。
不过:你的一个错误是在参数sprintf_s
:
int sprintf_s(
char *buffer,
size_t sizeOfBuffer,
const char *format [,
argument] ...
);
例由微软:
// crt_sprintf_s.c
// This program uses sprintf_s to format various
// data and place them in the string named buffer.
//
#include <stdio.h>
int main(void)
{
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f;
// Format and print various data:
j = sprintf_s(buffer, 200, " String: %s\n", s);
j += sprintf_s(buffer + j, 200 - j, " Character: %c\n", c);
j += sprintf_s(buffer + j, 200 - j, " Integer: %d\n", i);
j += sprintf_s(buffer + j, 200 - j, " Real: %f\n", fp);
printf_s("Output:\n%s\ncharacter count = %d\n", buffer, j);
}
另外请注意,这是微软的扩展。用不同的编译器编译相同的程序可能会失败。
但严重的是,不要使用那些在所有的,只是做:
std::stringstream ss;
ss << "d:/foobar.exe " << arg1 << ' ' << arg2;
const std::string command = ss.str();
在一个更严重的是:找一个很好的入门C++的书,也不要节目C,当你有C++中你的仓库。
太棒了!什么是问题? – 2011-12-23 10:53:44
什么操作系统? – 2011-12-23 10:57:33
从运行所有必需的exe的C++执行一个脚本(批处理/ shell)。 – Arunmu 2011-12-23 10:59:52