为什么
while ((ch = getchar()) != EOF) {
// stuff
}
更常见/偏好/考虑比以下更好?
ch = getchar();
while (ch != EOF) {
// stuff
ch = getchar();
}
我可以想出一些支持和反对的理由。
有关:
反对:
是否有其他使用类似结构的例子?
我觉得这个问题会产生意见,所以我会要求他们以某种理由予以支持。粗略的搜索显示这个问题没有重复,所以我希望它不是重复的!
答案 0 :(得分:0)
您展示的代码很常见,因为它是在开创性的K& R C书中提出的。你可以在这里看到一个被新手程序员困惑的例子:reading k&r(c book) and confusing 1st chapter code
我个人的偏好是这样,或者这样:
for (int ch = getchar(); ch != EOF; ch = getchar())
或者这个:
for (int ch; (ch = getchar()) != EOF; )
有许多方法可以给猫皮肤。但K& R首先剥了它。