[求解析]读取txt文件时为何每一行的第一个单词都没有输出
[求解析]读取txt文件时为什么每一行的第一个单词都没有输出?
各位大侠:
我用的是VC6.0版本,一边看《C++ Primer》第4版中文版,现在看到第8章标准IO库。我编写了一个get函数,用它来输出txt文件中的英文句子。txt文件存放在当前文件夹中,名为in4.txt。里面有四句英文句子,如下图:
![[求解析]读取txt文件时为何每一行的第一个单词都没有输出 [求解析]读取txt文件时为何每一行的第一个单词都没有输出](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDE1LzAzLzA3LzEyNDcxMDUyMy5qcGc=)
运行程序输出的结果如下图:
![[求解析]读取txt文件时为何每一行的第一个单词都没有输出 [求解析]读取txt文件时为何每一行的第一个单词都没有输出](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDE1LzAzLzA3LzEyNDcxMDUyNC5qcGc=)
求各位大侠解析一下,非常感谢。非常感谢。
代码如下:
------解决思路----------------------
因为第一个字母已经被 files字条串接收了
------解决思路----------------------
这样改:
if(in.good())
{
string show;
getline(in,show);
cout <<files << show << endl;
}
各位大侠:
我用的是VC6.0版本,一边看《C++ Primer》第4版中文版,现在看到第8章标准IO库。我编写了一个get函数,用它来输出txt文件中的英文句子。txt文件存放在当前文件夹中,名为in4.txt。里面有四句英文句子,如下图:
运行程序输出的结果如下图:
求各位大侠解析一下,非常感谢。非常感谢。
代码如下:
#include <iostream>
#include <istream>
#include <ostream>
#include <fstream>
using namespace std;
istream &get(istream &in)
{
//int ival;
string files;
//while(in>>files,!in.eof())
while(in>>files)
{
if(in.bad())
throw std::runtime_error("IO stream corrupted");
if(in.fail())
{
cerr << "bad data, try again";
in.clear();
in.ignore(200,' ');
continue;
}
if(in.good())
{
string show;
getline(in,show);
cout << show << endl;
}
}
in.clear();
return in;
}
int main()
{
string fileName;
cout << "Enter filename: " << endl;
cin >> fileName;
ifstream inFile;
inFile.open(fileName.c_str());
if(!inFile.is_open())
{
cout << "error: can not open file: "
<< fileName << endl;
return -1;
}
get(inFile);
inFile.close();
return 0;
}
------解决思路----------------------
因为第一个字母已经被 files字条串接收了
------解决思路----------------------
这样改:
if(in.good())
{
string show;
getline(in,show);
cout <<files << show << endl;
}