c++ - 两个相同的代码段,不同的结果

标签 c++ file-io

我需要做的只是简单地读取同一目录中的文件,但由于某种原因它无法正常工作。

在我遇到问题后进行的这个快速测试中,它运行得非常好,并输出文本文件中的条目数。

#include <iostream>
using std::cout;
using std::cin;

#include <cstdio>

int main()
    {
    int a;
    int b = 0;
    freopen ("7.txt", "r", stdin);

    while (cin >> a)
        ++b;

    cin.clear();

    fclose (stdin);
    freopen ("7.txt", "r", stdin);

    cout << b << '\n';

    fclose (stdin);
}

编辑:哇,我很抱歉所有试图解决这个问题的人。我发这篇文章的时候已经很晚了,但我想我已经完成了。显然不是。现在重新打开我的文件以在其中发布代码时,我意识到我之前将所有内容都移到了一个文件夹中,但显然当我尝试运行实际的东西时,它保存在文件夹之外,所以它无法打开“7 。TXT”。

我想问题已经解决了,可悲的是浪费了空间,因为它甚至还没有完成 O_o,抱歉。

EDIT2:好的,现在我很困惑。我在这台电脑上有一个临时账户,但是当我登录这个账户问一个不同的问题时,这个我打算在前一天晚上发布的问题出现了。问的时候我什至不在这台电脑上。如果一切准备就绪,不知道为什么没有那样发布。

最佳答案

我最好的“猜测”是您正在尝试重新读取同一个文件。如果是这种情况,那么您可以试试这个:

std::ifstream file("7.txt");
std::string line = "";
while(std::getline(file, line))
{
  //do something
}
//reset file pointer
file.clear();
file.seekg (0, std::ios::beg);
//re-read file
while(std::getline(file, line))
{
  //do something else
}   

请在未来尝试提出更好的问题。

关于c++ - 两个相同的代码段,不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7607420/

相关文章:

c++ - wxWidgets:如何在不将控制权传递给它的情况下制作图形用户界面?

c++ 帮助读取 stdin 和 stdout 。还有运算符重载

python - 在 python 中将 namedtuple 写入和读取文件

java - CSV 文件,二进制格式更快?最快的搜索?

c++ - 为什么 C++ 禁止 final 类的私有(private)继承?

c++ - 固定动态大小的容器

c++ - C++ 类中的任何泛型类型

python - 创建+读取+追加+二进制的文件模式

python - 如何在python中动态转义/输入文件名

c - 从文本文件中读取第一个单词,找出它的长度并计算文件中有多少个该长度的单词