关于getline的使用有关问题

关于getline的使用问题。#includewindows.h #includeiostream#includefstream#includestring#inclu

关于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;