c ++ string.find()返回字符串的长度

时间:2018-11-15 13:23:35

标签: c++ string tcp find telnet

嗨,我有点困惑。我的程序使用TCP通过网络传输消息。我认为这与我的问题无关。

std::stringstream tmp(buf);

            if (tmp.str().find("\r\n") == std::string::npos ) {
                std::cout << " doesnt have ending char" << std::endl;
            }else{
                std::cout << " position of ending char " << tmp.str().find("\r\n") << std::endl;
            }

从客户端读取消息时,消息被推送到stringstream。然后我试图找到转义字符,不幸的是string.find(“ \ r \ n”)总是返回字符串的长度,即使buf中不包含“ \ r \ n”。

我正在使用

  

telnet

进行测试,是否可能是由于telnet引起的?

这是我终端的输出:

Connected to localhost.
Escape character is '^]'.
200 LOGIN
asdadsgdgsd

这是从程序输出的:

3001 PORT NUM 
sent message: asdadsgdgsd  END  
position of ending char 11

1 个答案:

答案 0 :(得分:1)

在控制台中输入然后发送和接收的字符串是

"asdadsgdgsd\r\n"
 012345678901_2_

所以值11是正确的