1

我知道这是一个基本问题,但我似乎无法将 char 字符串 (\r\n) 附加到另一个。我曾尝试使用数组(strcpy)和字符串对象,但没有任何进展。要将字符串发送到 Java 小程序,我需要附加 \r\n 字符,否则它只会坐等它们。当我使用带有 c_str() 函数的搅拌器时,我得到一个

C:\ucdhb2\gaia\async_ssl\no4\basic.cpp|163|错误:在'readit'中请求成员'c_str',它是非类类型'std::string*'|

错误。任何帮助,将不胜感激。

        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 函数,这将连接两个字符串

于 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 回答