我需要做的只是简单地读取同一目录中的文件,但由于某种原因它无法正常工作。
在我遇到问题后进行的这个快速测试中,它运行得非常好,并输出文本文件中的条目数。
#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/