设1.txt文件内容如下:
name = baidu
url = www.baidu.com
看程序:
- #include <fstream>
- #include <string>
- #include <iostream>
- using namespace std;
-
- int main()
- {
- ifstream in("1.txt");
- string filename;
- string line;
- string s;
- string :: size_type pos;
-
- if(in) // 有该文件
- {
- while (getline (in, line)) // line中不包括每行的换行符
- {
- pos = line.find("name");
- if(pos != string :: npos)
- {
- s = line.substr(pos + strlen("name") + strlen(" = "));
- cout << s.c_str() << endl;
- }
-
- pos = line.find("url");
- if(line.find("url") != string :: npos)
- {
- s = line.substr(pos + strlen("url") + strlen(" = "));
- cout << s.c_str() << endl;
- }
-
- }
- }
- else // 没有该文件
- {
- cout <<"no such file" << endl;
- }
-
- return 0;
- }
结果为:
baidu
当然也可以用sscanf, 如下:
- #include <fstream>
- #include <string>
- #include <iostream>
- using namespace std;
-
- int main()
- {
- ifstream in("1.txt");
- string filename;
- string line;
- char s1[1024] = {0};
- char s2[1024] = {0};
-
- if(in) // 有该文件
- {
- while (getline (in, line)) // line中不包括每行的换行符
- {
- if(2 == sscanf(line.c_str(), "%s = %s", s1, s2))
- {
- cout << s2 << endl;
- }
- else
- {
- return 1;
- }
-
- }
- }
- else // 没有该文件
- {
- cout <<"no such file" << endl;
- }
-
- return 0;
- }