string input;
string input2;
printf("What is your name?\n-->");
getline(cin, input);
std::string nameObj = "{ \"name\": " + '"' + input + '"' + " }";
printf("What do you want to send?\n-->");
getline(cin, input2);
std::string jsonObj = "{ \"content\": " + '"' + input2 + '"' + ", \"tts\": true }";
它要求输入,但它不会对它做任何事情。我需要它将它放入input2和input,但它没有。
答案 0 :(得分:1)
您的代码几乎是正确的,唯一可能无法执行的操作是将char
添加到char*
,就像在JSON构造中一样。写得像这样:
string input;
string input2;
printf("What is your name?\n-->");
getline(cin, input);
std::string nameObj = "{ \"name\": \"" + input + "\" }";
cout << nameObj << endl;
printf("What do you want to send?\n-->");
getline(cin, input2);
std::string jsonObj = "{ \"content\": \"" + input2 + "\", \"tts\": true }";
cout << jsonObj << endl;
char
s基本上是数字,所以你无意中做了指针算术而不是连接字符串和字符。 C ++的内置类型非常原始,例如:你也不能连接原始char*
;要做到这一点,你总是需要将它们包裹在std::string("...")
。
除了连接之外,您可以查看stringstream
来构建JSON字符串,同时避免重复连接字符串导致的复制。
通过cin
读取后,您还应该检查if (!cin.good()) { /* handle error */ }
流是否正常。错误处理通常涉及使用cin.clear()
清除流的状态。
答案 1 :(得分:-1)
首先包括使用namespace std;下面的头文件 然后去这里看看代码 https://justpaste.it/14aam