C++,ifstream对象调用getline按行读取文本文件
2012-11-17 16:57
453 查看
C++ Prime P255 本来是学习该页的用 vector<string> files
自己捣鼓了一个用getline 读文件:
getline此时的用法 直接 getline(ifile,s)
ifile: 读文件的流,即ifstream对象
s: string 对象
参考 http://wenku.baidu.com/view/590cce0abb68a98271fefaf4.html
中的第四条:
getline(cin,s) ; // 就是把输入的一行赋予字符串s, 把cin换成ifstream的文件流ifile 即可.
因为 ifstream 由 istream 派生而来....继承了其中的方法getline,因此用法雷同.
另外可以参考:
/article/7143658.html
// 如果是这样,则遇到空格就算读了一次
ifstream& readfilebyline(ifstream& in){
string s;
while(in>>s)cout<<s<<endl;
return in;
}
运行结果是 原txt文件中的第一行没有, 原因估计是 在 mian() 中给ifile(filename.c_str()) 是就读过了 ?
//---
再改,直接在main () 中, 第一行还是没有读到,奇怪了.如下:
// 再改改 : 直接在 main中 用getline 就可以把第一行读出:
#include <iostream> #include <vector> #include <fstream> #include <string> using namespace std; void main() { ifstream input; string s,filename = "c:/ludashi.txt"; vector<string> files; files.push_back(filename); vector<string>::const_iterator it = files.begin(); while (it!=files.end()) { input.open(filename.c_str()); if(!input)break; while(input>>s)cout<<s<<endl; input.close(); input.clear(); ++it; } }
自己捣鼓了一个用getline 读文件:
getline此时的用法 直接 getline(ifile,s)
ifile: 读文件的流,即ifstream对象
s: string 对象
// 标准IO库.cpp //P253 #include <iostream> #include <fstream> #include <string> using namespace std; ifstream& readfilebyline(ifstream& in){ string s; if(!in)exit(EXIT_FAILURE);// 流出错 while(getline(in,s)) cout<<s<<endl; in.close(); in.clear(); return in; } void main() { string filename = "c:/ludashi.txt"; ifstream ifile(filename.c_str()); if(ifile.is_open()) readfilebyline(ifile); }
参考 http://wenku.baidu.com/view/590cce0abb68a98271fefaf4.html
中的第四条:
getline(cin,s) ; // 就是把输入的一行赋予字符串s, 把cin换成ifstream的文件流ifile 即可.
因为 ifstream 由 istream 派生而来....继承了其中的方法getline,因此用法雷同.
另外可以参考:
/article/7143658.html
// 如果是这样,则遇到空格就算读了一次
ifstream& readfilebyline(ifstream& in){
string s;
while(in>>s)cout<<s<<endl;
return in;
}
运行结果是 原txt文件中的第一行没有, 原因估计是 在 mian() 中给ifile(filename.c_str()) 是就读过了 ?
//---
再改,直接在main () 中, 第一行还是没有读到,奇怪了.如下:
// 再改改 : 直接在 main中 用getline 就可以把第一行读出:
相关文章推荐
- C++中利用文件输入对象(即ifstream对象)来读取文本文件中带空格的字符串以及混合输入数字与字符串
- ifstream连续读取文本文件时只能读取一个文件 其他文件读取失败问题
- C++中string类及文件流类(ofstream,ifstream)的基本操作---按行读取文档
- c++使用getline和ifstream读取文件
- c++使用getline和ifstream读取文件
- 读取文件:ifstream和getline
- 四种读写文件的方式:系统调用(open/read/write),C语言(fopen,fgets, fputs),C++(ifstream, ofstream getline,)泛型算法
- 利用AdoDb.Stream对象来读取UTF-8格式的文本文件
- 利用AdoDb.Stream对象来读取UTF-8格式的文本文件
- C#快速随机按行读取大型文本文件 - 磊的博客 - sanshi_leilei - 和讯博客
- ifstream或ofstream读取二进制文本乱码问题
- VC与DEV编译器关于ifstream的文本反复读取问题存在的不同
- [转]C++按行读取文本文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
- 数组初始化对象,ifstream,ofstream
- VC ANSI环境下按行读取ANSI、UNICODE 、UNICODE big endian、UTF-8四种文本文件
- Java高级语法笔记-文本文件的按行读取
- C++ 读取中文文本 ifstream