我试图做一个使用getchar()从标准输入中读取短行的函数。该函数本身确实运行良好,但是当我在while循环中将其用作哨兵的一部分时,总会收到一个错误,简而言之,即它无法从字符串转换为bool。

#include <iostream>
#include <stdio.h>
using namespace std;
string myReadLine();
int main()
{
string str = "";
while ((str = myReadLine()) != NULL) { //eof, and any expression of that sort

cout << str << endl;

}
    return 0;
}




string myReadLine() {
string line =  "";
char singleSign;

while ((singleSign=getchar()) != '\n') {
line = line + singleSign;

}
return line;
}


我究竟做错了什么?多谢您的协助!



问题2:
您如何看待myReadLine()函数的效率?可以吗

最佳答案

如您所说,您不能将字符串转换为布尔值。我建议:

str = myReadLine();
while (!str.empty())
{
  cout << str << endl;
  str = myReadLine();
}

07-26 07:38