事情的起因
是,电脑最近重装了系统之后,docker一直还没安装,最近做毕设正好有需求,再加上久闻docker大名,想要成为docker糕手😍
但是,如果你:
- 人在中国
- 使用windows系统下的docker desktop
- 使用WSL2而不是WSL1
那么恭喜你,你将喜提一个超~~级难debug的bug(好像是最近一个新的bug,仓库里有人发了关于这个问题的issue
是,电脑最近重装了系统之后,docker一直还没安装,最近做毕设正好有需求,再加上久闻docker大名,想要成为docker糕手😍
但是,如果你:
那么恭喜你,你将喜提一个超~~级难debug的bug(好像是最近一个新的bug,仓库里有人发了关于这个问题的issue
ifstream::eof()
有bug。
如果有一个文件test.txt
,文件内容是:
1 | 1 a |
(注意,最后有一个空行)
则,当时用下面的代码时,会有问题。
1 | int main() { |
原因在于,第三行读取完成后,不管是否将最后的换行符进行了消除,eof()
会仍然返回false,因为只有当读到最后一个字符并尝试继续读的时候,该函数才会返回true。