1

これが基本的な質問であることは知っていますが、char文字列(\ r \ n)を別の文字列に追加できないようです。配列(strcpy)と文字列オブジェクトを使用してみましたが、うまくいきませんでした。文字列をJavaアプレットに送信するには、\ r \ n文字を追加する必要があります。そうしないと、そのまま座って待機します。c_str()関数でstirngを使用すると、

C:\ ucdhb2 \ gaia \ async_ssl \ no4 \ basic.cpp | 163 |エラー:非クラスタイプの'std :: string*'|である'readit'のメンバー'c_str'の要求|

エラー。どんな助けでもいただければ幸いです。

        char readit[45];

        cin >> readit;

        strcpy( readit, "\r\n" );

        SSL_write( ssl, readit, strlen(readit));   // This doesn't work 
//      SSL_write( ssl, "this works\n\r", strlen("this works\n\r"));  // This works
4

3 に答える 3

4

Astringはあなたが必要とするものでなければなりません。

std::string readit;
std::getline(std::cin, readit);
readit += "\r\n";
SSL_write(ssl, readit.data(), readit.size());

他のコメンテーターが指摘しているように、サンプルコードは。strcatではなく使用する必要がありましstrcpyた。ただし、char配列を使用する場合は、バッファオーバーフローをチェックする必要があります。std::stringオーバーフローしません。

于 2012-07-06T23:37:42.330 に答える
2

strcat関数を試してください。これにより、2つの文字列が連結されます。

于 2012-07-06T23:44:08.613 に答える
0

ある文字列を別の文字列にコピーするstrcpyの代わりに、次を使用します。

char* str = new char[100];
sprintf(str, "%s\r\n", readit);
于 2012-07-06T23:35:27.167 に答える