C++ Getline没有';当我使用计数功能时,它不工作
我找不到有关这方面的信息,为什么我在第一次运行count函数时无法从Test.txt打印详细信息 但当我尝试用While循环切换count函数时,它工作了,但程序无法再打印行计数 问题C++ Getline没有';当我使用计数功能时,它不工作,c++,C++,我找不到有关这方面的信息,为什么我在第一次运行count函数时无法从Test.txt打印详细信息 但当我尝试用While循环切换count函数时,它工作了,但程序无法再打印行计数 问题 void ReadDataFromFileLBLIntoCharArray() { ifstream fin("Test.txt"); const int LINE_LENGTH = 100; char str[LINE_LENGTH]; cout << count(s
void ReadDataFromFileLBLIntoCharArray()
{
ifstream fin("Test.txt");
const int LINE_LENGTH = 100;
char str[LINE_LENGTH];
cout << count(std::istreambuf_iterator<char>(fin),std::istreambuf_iterator<char>(), '\n') << endl;
cout << "GG" << endl;
while( fin.getline(str,LINE_LENGTH) )
{
cout << "Read from file: " << str << endl;
}
}
void readdatafromfilelblintocharray()
{
ifstream fin(“Test.txt”);
const int LINE_LENGTH=100;
字符str[行长度];
cout在这两种情况下,您试图读取文件内容两次,为此,您需要:
清除ifstream
的错误状态
倒带ifstream
void readdatafromfilelblintocharray()
{
ifstream fin(“Test.txt”);
const int LINE_LENGTH=100;
字符str[行长度];
这有一个比我想输入的更优雅的答案吗?.TL:DR,fin
会根据您首先执行的逻辑迭代到文件末尾。
void ReadDataFromFileLBLIntoCharArray()
{
ifstream fin("Test.txt");
const int LINE_LENGTH = 100;
char str[LINE_LENGTH];
cout << "GG" << endl;
while( fin.getline(str,LINE_LENGTH) )
{
cout << "Read from file: " << str << endl;
}
cout << count(std::istreambuf_iterator<char>(fin),std::istreambuf_iterator<char>(), '\n') << endl;
}
void ReadDataFromFileLBLIntoCharArray()
{
ifstream fin("Test.txt");
const int LINE_LENGTH = 100;
char str[LINE_LENGTH];
cout << count(std::istreambuf_iterator<char>(fin),std::istreambuf_iterator<char>(), '\n') << endl;
cout << "GG" << endl;
// Add these lines
fin.clear();
fin.seekg(0); // rewind
while( fin.getline(str,LINE_LENGTH) )
{
cout << "Read from file: " << str << endl;
}
}
void ReadDataFromFileLBLIntoCharArray()
{
ifstream fin("Test.txt");
const int LINE_LENGTH = 100;
char str[LINE_LENGTH];
cout << "GG" << endl;
while( fin.getline(str,LINE_LENGTH) )
{
cout << "Read from file: " << str << endl;
}
// Add these lines
fin.clear();
fin.seekg(0); // rewind
cout << count(std::istreambuf_iterator<char>(fin),std::istreambuf_iterator<char>(), '\n') << endl;
}