检查文件是否只包含空格C ++

时间:2017-09-04 20:30:01

标签: c++ file input whitespace

我正在尝试用C ++读取文件中的输入,如果没有输入,我需要给出错误消息。

如果文件完全为空,则此语句有效:

if (f.peek() == std::ifstream::traits_type::eof()) return error("Empty file");

其中error()是一个简单的函数:

int error(string message){
   cerr << "ERROR: " << message << "\n";
   return -1;
}

如何检查仅包含空格的文件,以便我可以引发相同的错误?如7个换行符?
如果文件只包含空白字符,我应该继续正常执行。

3 个答案:

答案 0 :(得分:1)

如果文件只包含空格,则提前扫描文件 非常低效

我相信你真正需要的是跟踪是否可以读取一些非空白数据,如果没有则会引发错误:

var itemSchema = new mongoose.Schema({
name: String
});

答案 1 :(得分:0)

我可以在文件输入上使用std::istream_iterator,并使用std:isspace()检查单个字符。

但我想知道这是真的你想做什么。为什么不尝试阅读你想要阅读的内容,只有在阅读/解析失败时才会担心事情?

答案 2 :(得分:0)

阅读字符并使用std::isspace进行检查可能有所帮助。像这样的东西:

char c;
bool isEmpty = true;
while (f.get(c))
{
  if(!std::isspace(c))
  {
    isEmpty = false;
    break;
  }
}
这样,isEmpty就是它所说的

相关问题