关于getline的使用问题。
#include "windows.h "
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
void main()
{
wstring fileNameStr;
WIN32_FIND_DATA findFileData;
HANDLE hFind;
TCHAR *pathName = L "C:\\Documents and Settings\\xglu\\桌面\\16\\*.* ";
hFind = FindFirstFile(pathName, &findFileData);
ifstream inputFile;
int i = 0;
while (FindNextFile(hFind, &findFileData))
{
if(0 != i)
{
wstring fileName = findFileData.cFileName;
inputFile.open(fileName.c_str());
wcout < < fileName < < endl;
string str;
while(getline(inputFile, str))//这里我想让他循环读取所有文件中的内容。可是他把第一个文件中的内容读取完以后就不再读其他的文件了。为什么???
{
cout < < str < < endl;
}
inputFile.close();
}
i++;
}
FindClose(hFind);
system( "pause ");
}
在这个程序中。我想循环读取一个文件夹下的所有文件,然后讲文件名和文件中的所有内容都显示出来。可是它只显示一个文件的内容以后就不再读取其他文件的内容了。其他文件都只显示文件名,不显示内容了。而如果将while(getline(inputFile, str))改为getline(inputFile, str)就可以顺利执行,也就是每个文件只读取第一行。
[解决办法]
在inputFile.close() 后加一句inputFile.clear()
[解决办法]
这样试试:
inputFile.close();
inputFile.clear();
要清空流的状态
[解决办法]
1)
string str;
ifstream f( "test.txt ");
while (getline(f, str))
cout < <str < <endl;
2)
f.clear();
f.sync();
f.seekg(0);
char str2[128];
while (f.getline(str2, sizeof(str2)))
cout < <str2 < <endl;
关于getline的使用有关问题
关于getline的使用问题。#includewindows.h #includeiostream#includefstream#includestring#inclu
