【发布时间】:2022-12-09 17:26:06
【问题描述】:
当我运行我的代码来读取文件时,它以各种方式工作。我在文件中找到的任何 ASCII 代码都可以使用我的函数打印出来。但是当它到达 EOF 时,我希望它返回 0,但它返回 255。为什么会发生这种情况,我该如何解决。
我的代码段:
uint8_t FileDevice::read () {
ifile.open(this->fileName);
if (!ifile) ifile.open(this->fileName.c_str(), ifstream::app);
ifile.seekg(this->position);
uint8_t character;
character = ifile.get();
ifile.close();
this->position++;
printf("%d\n", character);
return character;
}
【问题讨论】:
-
你为什么期望
get返回 0?它返回更宽的整数类型,以便能够返回“无效”值。