我试图做一个使用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();
}