以下代码将不起作用。有人可以给我一个关于为什么的想法吗?这是我第一次在这里发布,所以很抱歉我的问题似乎含糊不清...
istream &operator>>(istream &in, CharacterSet &s)
{
for (int x = 0; x < ARRSIZE; x++)
{
s.charArray[x] = false;
}
char myChar = ' ';
do
{
in >> myChar;
if (myChar >= 32 && myChar <= 126)
{
s.charArray[myChar - 32] = true;
}
} while (myChar != ' ');
return in;
}
逐行读取行,然后循环循环。使用空白行作为前哨。
istream &operator>>(istream &in, CharacterSet &s) {
for (int x = 0; x < ARRSIZE; x++) {
s.charArray[x] = false;
}
std::string line;
while (in.getline(line) && line != "") {
for (char myChar: line) {
if (isprint(myChar)) {
s.charArray[myChar - ' '] = true;
}
}
}
return in;
}