#include <iostream>
using namespace std;
int main() {
short int enterVal;
cout << "enter a number to say: " << endl;
cin >> enterVal;
system("say "%d"") << enterVal;
return 0;
}
我正在尝试什么。我希望用户输入一个数字,而system()函数基本上就是这样说的。上面的代码有一个错误,表示“'d'未在此范围内声明”。提前谢谢。
答案 0 :(得分:3)
您必须手动格式化字符串。
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
short int enterVal;
cin >> enterVal;
stringstream ss;
ss << "say \"" << enterval << "\"";
system(ss.str().c_str());
}
答案 1 :(得分:0)
您必须转义引号并格式化字符串。另一种方法是:
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
short int enterVal;
char command[128];
cout << "enter a number to say: " << endl;
cin >> enterVal;
snprintf((char *)&command, 128, "say \"%d\"", enterVal);
system(command);
return 0;
}
您还应该知道,您应该以编程方式避免使用system()调用,因为这会使您的程序容易受到安全漏洞的攻击。</ p>
如果你只是乱搞而不介意,那就继续一切;)
答案 2 :(得分:0)
您可以使用以下内容:
#include <iostream>
#include <sstream>
using namespace std;
int main() {
short int enterVal;
cout << "enter a number to say: " << endl;
cin >> enterVal;
ostringstream buff;
buff << "say " << enterVal;
system(buff.str().c_str());
return 0;
}