我知道这是一个基本问题,但我似乎无法将char字符串(\ r \ n)附加到另一个字符串。我曾尝试使用数组(strcpy)和字符串对象,但没有进展。要将字符串发送到Java applet,我需要附加\ r \ n字符,否则它将只是等待它们。当我使用带有c_str()函数的stirng时,我得到了一个
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
答案 0 :(得分:4)
string
应该是您所需要的。
std::string readit;
std::getline(std::cin, readit);
readit += "\r\n";
SSL_write(ssl, readit.data(), readit.size());
正如其他评论员所说,您的示例代码需要使用strcat
而不是strcpy
。但是,如果您使用char
数组,则需要检查缓冲区溢出。 std::string
不会溢出。
答案 1 :(得分:2)
尝试strcat函数,这将连接两个字符串
答案 2 :(得分:0)
使用:
而不是将一个字符串复制到另一个字符串的strcpychar* str = new char[100];
sprintf(str, "%s\r\n", readit);