C++ Primer 习题8.9 ifstream使用方法

 1 #include <iostream>
 2 #include <fstream>
 3 #include <vector>
 4 #include <string>
 5
 6 using namespace std;
 7
 8 ifstream& ReadLine(ifstream& in, vector<string> &vecLines)
 9 {
10     string line;
11     while (!in.eof())
12     {
13         getline(in, line);
14         cout<<line<<endl;
15         vecLines.push_back(line);
16     }
17     return in;
18 }
19 ifstream& ReadStr(ifstream& in, vector<string> &vecStrs)
20 {
21     string str;
22     while (!in.eof())
23     {
24         in>>str;
25         cout<<str<<endl;
26         vecStrs.push_back(str);
27     }
28     return in;
29 }
30 int main()
31 {
32     ifstream inFile("1.txt");
33     if (!inFile)
34         return -1;
35     vector<string> vecLines;
36     ReadLine(inFile,vecLines);
37     inFile.close();
38     inFile.clear();
39     inFile.open("1.txt");
40     if (!inFile)
41         return -1;
42     vector<string> vecStrs;
43     ReadStr(inFile,vecStrs);
44     inFile.close();
45     inFile.clear();
46     return 0;
47 }

总结:

(1)ifstream使用getline获取文件内一行元素。
(2)ifstream继承istream可以使用>>获取单个字符串。

结果:

时间: 2024-11-04 22:57:11

C++ Primer 习题8.9 ifstream使用方法的相关文章

cpp primer 习题代码(更新)

1 3.1 2 3 #include <iostream> 4 using std::cin; 5 using std::cout; 6 using std::endl; 7 int main() 8 { 9 int base,exponent; 10 long result=1; 11 cout<<"Enter base and exponent:"<<endl; 12 cin>>base>>exponent; 13 if(

C++ Primer 习题11.15分析

题目: 算法标准库定义了一个名为unique_copy的函数,其操作与unique类似,唯一的区别在于:前者接受第三个迭代器实参,用于指定复制不重复元素的目标序列.编写程序,使用unique_copy将一个list对象中不重复的元素复制到一个空的vector容器中. 原有答案如下: #include <iostream> #include <iterator> #include <vector> #include <algorithm> #include &

C++primer习题--第4章

本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter4-ans.html,转载请注明源地址. [习题 4.7] 编写必要的代码将一个数组赋给另一个数组,然后把这段代码改用 vector 实现. 考虑如何将一个 vector 赋给另一个 vector. 用数组实现: #include <iostream> using namespace std; int main( ) { const size_t size=5; int a1[

C++primer习题--第3章

本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter3-ans.html,转载请注明源地址. [习题 2.11]编写程序,要求用户输入两个数——底数( base)和指数( exponent),输出底数的指数次方的结果. #include <iostream> #include <math.h> #include <string> using namespace std; int main( ) { int

习题:用数组的方法从控制端输入狗名和狗的体重,求总体中和平均值

public class Test1 { public static void main (String args[]) throws Exception { Dog dogs[] = new Dog[4]; InputStreamReader isr= new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); for( int i=0;i<4;i++) { dogs[i]= new Dog();

C Primer 习题

2.4 #include<stdio.h>int main(void){    int s;    s = 52;    printf("There are %d weeks in a year.",s);    return 0;} 2.5 a.Baa Baa Blacke Sheep.Have you any wool? b.Begone!nO creature of lard! c.What? No/nfish? d.2+2=4 2.6 都是 2.7 int n,m;

第八节课:基本数据结构习题

##习题1: 列表a = [11,22,24,29,30,32] 1 把28插入到列表的末端 a.append(28) 2 在元素29后面插入元素57 >>> a = [11,22,24,29,30,32] 3 >>> a.insert(a.index(29)+1,57) >>> a [11, 22, 24, 29, 57, 30, 32] 3 把元素11修改成6 a[0] = 6 a[a.index(11)] = 6 3 删除元素32 del a[a

Primer随笔

Day1 如果成员是const .引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始化值列表为这些成员提供初始值. 例如: class ConstRef{ public: ConstRef(int ii); private: int i; const int ci; int &ri; } ConstRef::ConstRef(int ii){ i = ii; ci = ii; ( 错误 不能赋值) ri = ii; (ri没有被初始化) } ConstRef::ConstRe

Python老王视频习题答案

基础篇2:一切变量都是数据对象的引用sys.getrefcount('test') 查看引用计数变量命名不能以数字开头编码:ascii.unicode.utf-81.阅读str对象的help文档,并解决如下的问题.1.1.有如下字符串. python是动态语言 要求如下[请分别写出脚本]: a=' python是动态语言 '(1.)去掉该字符串下前面所有的空格. print a.lstrip() (2.)去掉该字符串下后面所有的空格. print a.rstrip() (3.)去掉该字符串2边的