提供一种基于 std::getline 的读入方法
查看原帖
提供一种基于 std::getline 的读入方法
750067
ForgotDream_CHN楼主2023/8/19 14:56
struct Reader {
  std::string s;
  int p = 0;
  bool block = false;
  int operator()() {
    if (block) return block = false, -1;
    if (p == s.length()) std::getline(std::cin, s), p = 0, s += '\n';
    int res = -1;
    bool flg = false;
    while (p < s.length()) {
      if (std::isdigit(s[p])) {
        if (res == -1) res = s[p] - '0';
        else res = res * 10 + s[p] - '0';
        flg = true;
      } else if (flg) {
        if (s[p] == '\n') block = true;
        p++;
        return res;
      }
      p++;
    }
    return res;
  }
} read;

调用 read() 以读入一个整数,如返回 -1 则说明读完了一行。

2023/8/19 14:56
加载中...