請勿使用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