如何使用ISTream对象输入多个字符到对象的数组中?(and 0作为哨兵值.下面的我的代码将无效)



以下代码将不起作用。有人可以给我一个关于为什么的想法吗?这是我第一次在这里发布,所以很抱歉我的问题似乎含糊不清...

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;
}

相关内容

  • 没有找到相关文章

最新更新