我正在尝试用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个换行符?
如果文件只包含空白字符,我应该继续正常执行。
答案 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
就是它所说的