【发布时间】:2026-02-08 01:55:02
【问题描述】:
嗨,我有点困惑。我的程序使用 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;
}
当从客户端读取消息时,它被推送到字符串流。然后我试图找到转义字符,不幸的是 string.find("\r\n") 总是返回字符串的长度,即使 buf 中不包含 "\r\n"。
我正在使用
远程登录
测试一下,这种行为是否可能是由 telnet 引起的?
这是我的终端的输出:
Connected to localhost.
Escape character is '^]'.
200 LOGIN
asdadsgdgsd
这是程序的输出:
3001 PORT NUM
sent message: asdadsgdgsd END
position of ending char 11
【问题讨论】:
-
现在是您学习如何使用调试器的绝佳机会。使用调试器可以让您立即检查
tmp.str()返回的内容,并解开您的谜团。这就是调试器的用途。了解如何有效地使用调试器是每个 C++ 开发人员必备的技能。
标签: c++ string tcp find telnet