首页 > 编程语言 > 详细

C++ 文件(string读写)

时间:2014-02-09 21:57:09      阅读:451      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 #include<iostream>
 2 #include<fstream>
 3 #include<list>
 4 #include<string>
 5 using namespace std;
 6 int main()
 7 {
 8     ifstream fin("FinalNameListOut.txt");  //读操作
 9     ifstream firstClassNameIn("firstClassNameListOut.txt");
10     fstream finalNameListOut("thatisit.txt",ios::out);  //写操作
11     const int LINE_LENGTH = 100;     //常量使用大写字母加‘_‘进行命名
12     char str[LINE_LENGTH];  
13     char str1[LINE_LENGTH];      //此处命名不够好,
14     while( fin.getline(str,LINE_LENGTH) )  //.getline(char[], int)
15     { 
16         string st=str;
17         string st1;
18         while(firstClassNameIn.getline(str1,LINE_LENGTH))
19         {
20             st1=str1;
21             if(st1.find(st,0)>=0&&st1.find(st,0)<50)  //string.find(string,pos)pos为起始位置,当寻找不到时,返回一个极大的值,为4294967295
22             {
23                 finalNameListOut<<st<<\n;  //将string类型的对象st写入文件中
24                 break;
25             }
26         }
27     }
28     system("PAUSE");
29     return 0;
30 } 
bubuko.com,布布扣

Tip:

在第二个while的getline将firstClassNameIn中元素遍历后,跳出while,回到第一个循环,再运行第二个while时,firstClassNameIn.getline(str1,LINE_LENGTH)返回值为false.

解决方法是在第一个循环中声明ifstream firstClassNameIn

bubuko.com,布布扣
 while( fin.getline(str,LINE_LENGTH) )  //.getline(char[], int)     
{ 
       string st=str;
       string st1;
       ifstream firstClassNameIn;
       while(firstClassNameIn.getline(str1,LINE_LENGTH))
    {
    ...
    }
}
bubuko.com,布布扣

C++ 文件(string读写)

原文:http://www.cnblogs.com/verssageli/p/3541823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!