关于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)就可以顺利执行,也就是每个文件只读取第一行。