C++ 文件(string读写)

C++ 文件(string读写)
 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 } 
C++ 文件(string读写)

Tip:

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

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

C++ 文件(string读写)
 while( fin.getline(str,LINE_LENGTH) )  //.getline(char[], int)     
{ 
       string st=str;
       string st1;
       ifstream firstClassNameIn;
       while(firstClassNameIn.getline(str1,LINE_LENGTH))
    {
    ...
    }
}
C++ 文件(string读写)

C++ 文件(string读写)

上一篇:python中的数字和数学计算


下一篇:IAR C语言嵌入汇编问题