当前位置:  开发笔记 > 编程语言 > 正文

文件中的字数,c ++

如何解决《文件中的字数,c++》经验,为你挑选了1个好方法。



1> David..:

while (in)检查是否没有发生错误.这和写作一样while (!in.fail())

在你打电话in >> word并获得第一个"寒意"后,while (in)仍然是真的,直到下一次打电话给in >> word.当你in >> word再次点击它失败,因为它在文件的末尾并且没有写任何内容word,但是word变量在上一次仍然有"Chill",所以你再次计算它.然后while (in)在下一次迭代时最终失败.

调用while (in >> word) { ++count; }工作因为in >> word实际上是in.operator>>(word)碰巧返回的函数istream&,并且istream有一个operator bool方法允许你在一个条件而不是写条件中使用它!in.fail().我知道,有点环形交叉路口.点是,它调用in >> word,然后检查if (in),如果它通过,然后调用++count;并再次迭代.与您的原始技术相比,word即使in >> word失败也会计算之前的技术.

为了使这一点更清楚,可能有助于知道将原始代码的if语句更改为if (in)也可以工作,但是会有一些不好的代码.

作为最后的结论,整个函数可以写成:

int countWords(std::istream& in) {
    int count = 0;
    for (std::string word; in >> word; ++count) {}
    return count;
}

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有