我需要做的只是从同一目录中的文件中进行简单读取,但由于某种原因它拒绝工作。
在我遇到问题后进行的快速测试中,它完全正常,并输出文本文件中的条目数。
#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 。文本”。
问题解决了我猜,遗憾地浪费了空间,看起来甚至没有完整O_o,抱歉。
EDIT2:好的,现在我很困惑。我在这台计算机上有一个临时账号,但是当我登录这个账户询问一个不同的问题时,我想在另一个晚上发布这个问题就出现了。在问这个问题时,我甚至没有在这台电脑上。不知道为什么它没有被发布,如果它已经准备好了。
答案 0 :(得分:3)
我最好的“猜测”是你试图重新读取同一个文件。如果是这种情况,那么你可以试试这个:
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
}
请在将来尝试制定更好的问题。
答案 1 :(得分:0)
我不知道您要做什么,但freopen
,fclose
和cin
之间的任何互动都是最佳定义的实施(很可能是未定义的行为)。< / p>