while (cin.getline(s, 80)) { if (s == "end") break; out << s << endl; } 当s=="end"时,循环未结束
时间: 2024-05-03 13:17:51 浏览: 27
while 循环
在这段代码中,当输入的字符串等于"end"时,循环确实不会立即结束。这是因为在比较字符串时,使用的是 C++ 中的字符串比较运算符"==",它只能比较两个字符串的地址是否相同,而不能比较它们的内容是否相同。
为了比较字符串的内容是否相同,可以使用 C++ 中的字符串比较函数`strcmp()`,或者使用 C++11 引入的字符串比较函数`std::string::compare()`。
修改后的代码如下:
```
while (cin.getline(s, 80)) {
if (strcmp(s, "end") == 0) break;
out << s << endl;
}
```
或者:
```
while (cin.getline(s, 80)) {
if (string(s).compare("end") == 0) break;
out << s << endl;
}
```
这样,当输入的字符串为"end"时,循环就会立即结束。
阅读全文