あなたのコードはほぼ正しいですが、あなたが望んでいない可能性があるのは、JSONの構築と同様にchar
〜char*
を追加することだけです。それはこのように書く:
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;
http://ideone.com/zY1LFg
char
Sは基本的に数値であるので、あなたは不注意代わりに、文字列と文字を連結したポインタ演算を行いました。 C++のビルトイン型は本当に基本的なものです。生の連結もできませんchar*
;それを行うには、常にstd::string("...")
にラップする必要があります。
連結する代わりに、stringstream
を調べると、JSON文字列を構築しながら、文字列を繰り返し連結することによるコピーを避けることができます。
また、if (!cin.good()) { /* handle error */ }
を実行してストリームを読み取った後、cin
ストリームが正常であるかどうかを確認する必要があります。エラー処理では通常、ストリームの状態をcin.clear()
でクリアします。
を参照してください。 – user4581301