(原創) 如何讀取文字檔? (C/C++) (STL)

时间:2022-09-01 18:28:27

讀取文字檔有很多方式,在此歸納出最精簡的程式寫法。

若要一行一行的讀取文字檔,可使用以下寫法。

 1 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) /* 
 2(原創) 如何讀取文字檔? (C/C++) (STL)(C) OOMusou 2006 http://oomusou.cnblogs.com
 3(原創) 如何讀取文字檔? (C/C++) (STL)
 4(原創) 如何讀取文字檔? (C/C++) (STL)Filename    : ReadTextFilePerLine.cpp
 5(原創) 如何讀取文字檔? (C/C++) (STL)Compiler    : Visual C++ 8.0 / ISO C++
 6(原創) 如何讀取文字檔? (C/C++) (STL)Description : Demo how to read text file per line
 7(原創) 如何讀取文字檔? (C/C++) (STL)Release     : 10/15/2006
 8(原創) 如何讀取文字檔? (C/C++) (STL)*/

 9 (原創) 如何讀取文字檔? (C/C++) (STL)
10 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < iostream >
11 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < fstream >
12 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < string >
13 (原創) 如何讀取文字檔? (C/C++) (STL)
14 (原創) 如何讀取文字檔? (C/C++) (STL) using   namespace  std;
15 (原創) 如何讀取文字檔? (C/C++) (STL)
16 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) int  main()  {
17(原創) 如何讀取文字檔? (C/C++) (STL)  ifstream inFile("books.txt");
18(原創) 如何讀取文字檔? (C/C++) (STL)  string line;
19(原創) 如何讀取文字檔? (C/C++) (STL)
20(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)  while(getline(inFile,line)) {
21(原創) 如何讀取文字檔? (C/C++) (STL)    cout << line << endl;
22(原創) 如何讀取文字檔? (C/C++) (STL)  }

23(原創) 如何讀取文字檔? (C/C++) (STL)
24(原創) 如何讀取文字檔? (C/C++) (STL)  inFile.close();
25(原創) 如何讀取文字檔? (C/C++) (STL)
26(原創) 如何讀取文字檔? (C/C++) (STL)  return 0;
27(原創) 如何讀取文字檔? (C/C++) (STL)}


執行結果

(原創) 如何讀取文字檔? (C/C++) (STL)this is a book
(原創) 如何讀取文字檔? (C/C++) (STL)a book a book
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)請按任意鍵繼續 . . .


若在一行一行讀取文字檔的同時,還想同時讀出每一個字串,可用以下寫法。

 1 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) /* 
 2(原創) 如何讀取文字檔? (C/C++) (STL)(C) OOMusou 2006 http://oomusou.cnblogs.com
 3(原創) 如何讀取文字檔? (C/C++) (STL)
 4(原創) 如何讀取文字檔? (C/C++) (STL)Filename    : ReadTextFilePerLineWord.cpp
 5(原創) 如何讀取文字檔? (C/C++) (STL)Compiler    : Visual C++ 8.0 / ISO C++
 6(原創) 如何讀取文字檔? (C/C++) (STL)Description : Demo how to read text file per line
 7(原創) 如何讀取文字檔? (C/C++) (STL)Release     : 10/15/2006
 8(原創) 如何讀取文字檔? (C/C++) (STL)*/

 9 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < iostream >
10 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < fstream >
11 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < string >
12 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < sstream >
13 (原創) 如何讀取文字檔? (C/C++) (STL)
14 (原創) 如何讀取文字檔? (C/C++) (STL) using   namespace  std;
15 (原創) 如何讀取文字檔? (C/C++) (STL)
16 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) int  main()  {
17(原創) 如何讀取文字檔? (C/C++) (STL)  ifstream inFile("books.txt");
18(原創) 如何讀取文字檔? (C/C++) (STL)  string line;
19(原創) 如何讀取文字檔? (C/C++) (STL)
20(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)  while(getline(inFile,line)) {
21(原創) 如何讀取文字檔? (C/C++) (STL)    cout << line << endl;
22(原創) 如何讀取文字檔? (C/C++) (STL)    istringstream ss(line);
23(原創) 如何讀取文字檔? (C/C++) (STL)    string word;
24(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)    while(ss >> word) {
25(原創) 如何讀取文字檔? (C/C++) (STL)      cout << word << endl;
26(原創) 如何讀取文字檔? (C/C++) (STL)    }

27(原創) 如何讀取文字檔? (C/C++) (STL)    cout << endl;
28(原創) 如何讀取文字檔? (C/C++) (STL)  }

29(原創) 如何讀取文字檔? (C/C++) (STL)
30(原創) 如何讀取文字檔? (C/C++) (STL)  inFile.close();
31(原創) 如何讀取文字檔? (C/C++) (STL)
32(原創) 如何讀取文字檔? (C/C++) (STL)  return 0;
33(原創) 如何讀取文字檔? (C/C++) (STL)}


執行結果

(原創) 如何讀取文字檔? (C/C++) (STL)this is a book
(原創) 如何讀取文字檔? (C/C++) (STL)this
(原創) 如何讀取文字檔? (C/C++) (STL)is
(原創) 如何讀取文字檔? (C/C++) (STL)a
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)
(原創) 如何讀取文字檔? (C/C++) (STL)a book a book
(原創) 如何讀取文字檔? (C/C++) (STL)a
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)a
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)
(原創) 如何讀取文字檔? (C/C++) (STL)請按任意鍵繼續 . . .


若只要讀取文字檔中的每個字,使用while()的方式,可直接處理字串。

 1 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) /* 
 2(原創) 如何讀取文字檔? (C/C++) (STL)(C) OOMusou 2006 http://oomusou.cnblogs.com
 3(原創) 如何讀取文字檔? (C/C++) (STL)
 4(原創) 如何讀取文字檔? (C/C++) (STL)Filename    : ReadTextFilePerWord.cpp
 5(原創) 如何讀取文字檔? (C/C++) (STL)Compiler    : Visual C++ 8.0 / ISO C++
 6(原創) 如何讀取文字檔? (C/C++) (STL)Description : Demo how to read text file per word
 7(原創) 如何讀取文字檔? (C/C++) (STL)Release     : 12/07/2006
 8(原創) 如何讀取文字檔? (C/C++) (STL)*/

 9 (原創) 如何讀取文字檔? (C/C++) (STL)
10 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < iostream >
11 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < fstream >
12 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < string >
13 (原創) 如何讀取文字檔? (C/C++) (STL)
14 (原創) 如何讀取文字檔? (C/C++) (STL) using   namespace  std;
15 (原創) 如何讀取文字檔? (C/C++) (STL)
16 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) int  main()  {
17(原創) 如何讀取文字檔? (C/C++) (STL)  ifstream inFile("books.txt");
18(原創) 如何讀取文字檔? (C/C++) (STL)  string str;
19(原創) 如何讀取文字檔? (C/C++) (STL)  
20(原創) 如何讀取文字檔? (C/C++) (STL)  while(infile >> str) 
21(原創) 如何讀取文字檔? (C/C++) (STL)    cout << str << endl;
22(原創) 如何讀取文字檔? (C/C++) (STL)  
23(原創) 如何讀取文字檔? (C/C++) (STL)  inFile.close();
24(原創) 如何讀取文字檔? (C/C++) (STL)
25(原創) 如何讀取文字檔? (C/C++) (STL)  return 0;
26(原創) 如何讀取文字檔? (C/C++) (STL)}


另外一種方式,使用copy() algorithm將文字都讀到vector中,再做後續的加工處理,優點是程式超短,缺點是要多浪費一個vector。

 1 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) /* 
 2(原創) 如何讀取文字檔? (C/C++) (STL)(C) OOMusou 2006 http://oomusou.cnblogs.com
 3(原創) 如何讀取文字檔? (C/C++) (STL)
 4(原創) 如何讀取文字檔? (C/C++) (STL)Filename    : ReadTextByCopy.cpp
 5(原創) 如何讀取文字檔? (C/C++) (STL)Compiler    : Visual C++ 8.0 / ISO C++
 6(原創) 如何讀取文字檔? (C/C++) (STL)Description : Demo how to read file per string by copy() algorithm
 7(原創) 如何讀取文字檔? (C/C++) (STL)Release     : 12/17/2006 1.0
 8(原創) 如何讀取文字檔? (C/C++) (STL)*/

 9 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < iostream >
10 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < fstream >
11 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < vector >
12 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < string >
13 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < algorithm >
14 (原創) 如何讀取文字檔? (C/C++) (STL)
15 (原創) 如何讀取文字檔? (C/C++) (STL) using   namespace  std;
16 (原創) 如何讀取文字檔? (C/C++) (STL)
17 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) int  main()  {
18(原創) 如何讀取文字檔? (C/C++) (STL)  ifstream inFile("books.txt");
19(原創) 如何讀取文字檔? (C/C++) (STL)  vector<string> svec;
20(原創) 如何讀取文字檔? (C/C++) (STL)  copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(svec));
21(原創) 如何讀取文字檔? (C/C++) (STL)  copy(svec.begin(), svec.end(), ostream_iterator<string>(cout,"\n"));
22(原創) 如何讀取文字檔? (C/C++) (STL)
23(原創) 如何讀取文字檔? (C/C++) (STL)  inFile.close();
24(原創) 如何讀取文字檔? (C/C++) (STL)
25(原創) 如何讀取文字檔? (C/C++) (STL)  return 0;
26(原創) 如何讀取文字檔? (C/C++) (STL)}


執行結果

(原創) 如何讀取文字檔? (C/C++) (STL)this
(原創) 如何讀取文字檔? (C/C++) (STL)is
(原創) 如何讀取文字檔? (C/C++) (STL)a
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)a
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)a
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)book
(原創) 如何讀取文字檔? (C/C++) (STL)請按任意鍵繼續 . . .

(02/20/2007 更新) 有網友問我怎麼將文字檔讀到二維陣列處理,以下是處理的方式
文字檔
(原創) 如何讀取文字檔? (C/C++) (STL)00001  Peter Hsiao  555.55
(原創) 如何讀取文字檔? (C/C++) (STL)
00002  John  Lin    222.12

 1 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) /* 
 2(原創) 如何讀取文字檔? (C/C++) (STL)(C) OOMusou 2007 http://oomusou.cnblogs.com
 3(原創) 如何讀取文字檔? (C/C++) (STL)
 4(原創) 如何讀取文字檔? (C/C++) (STL)Filename    : ReadTextFilePerLineWordToArray.cpp
 5(原創) 如何讀取文字檔? (C/C++) (STL)Compiler    : Visual C++ 8.0 / gcc 3.4.2 / ISO C++
 6(原創) 如何讀取文字檔? (C/C++) (STL)Description : Demo how to read text file to 2 dim array
 7(原創) 如何讀取文字檔? (C/C++) (STL)Release     : 02/20/2007 1.0
 8(原創) 如何讀取文字檔? (C/C++) (STL)*/

 9 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < iostream >
10 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < fstream >
11 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < string >
12 (原創) 如何讀取文字檔? (C/C++) (STL)#include  < sstream >
13 (原創) 如何讀取文字檔? (C/C++) (STL)
14 (原創) 如何讀取文字檔? (C/C++) (STL) using   namespace  std;
15 (原創) 如何讀取文字檔? (C/C++) (STL)
16 (原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL) int  main()  {
17(原創) 如何讀取文字檔? (C/C++) (STL)  ifstream inFile("source.txt");
18(原創) 如何讀取文字檔? (C/C++) (STL)  const int xsize = 5;
19(原創) 如何讀取文字檔? (C/C++) (STL)  const int ysize = 2;
20(原創) 如何讀取文字檔? (C/C++) (STL)  string (*arr)[xsize] = new string[ysize][xsize];
21(原創) 如何讀取文字檔? (C/C++) (STL)  
22(原創) 如何讀取文字檔? (C/C++) (STL)  string line;
23(原創) 如何讀取文字檔? (C/C++) (STL)  int y = 0;
24(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)  while(getline(inFile,line)) {
25(原創) 如何讀取文字檔? (C/C++) (STL)    istringstream ss(line);
26(原創) 如何讀取文字檔? (C/C++) (STL)    string word;
27(原創) 如何讀取文字檔? (C/C++) (STL)    int x = 0;
28(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)    while(ss >> word) {
29(原創) 如何讀取文字檔? (C/C++) (STL)      arr[y][x] = word;
30(原創) 如何讀取文字檔? (C/C++) (STL)      ++x;
31(原創) 如何讀取文字檔? (C/C++) (STL)    }

32(原創) 如何讀取文字檔? (C/C++) (STL)    ++y;
33(原創) 如何讀取文字檔? (C/C++) (STL)  }

34(原創) 如何讀取文字檔? (C/C++) (STL)
35(原創) 如何讀取文字檔? (C/C++) (STL)  inFile.close();
36(原創) 如何讀取文字檔? (C/C++) (STL)  
37(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)  for(int y = 0; y != ysize; ++y) {
38(原創) 如何讀取文字檔? (C/C++) (STL)(原創) 如何讀取文字檔? (C/C++) (STL)    for(int x = 0; x != xsize; ++x) {
39(原創) 如何讀取文字檔? (C/C++) (STL)      cout << arr[y][x] << " ";
40(原創) 如何讀取文字檔? (C/C++) (STL)    }

41(原創) 如何讀取文字檔? (C/C++) (STL)    cout << endl;
42(原創) 如何讀取文字檔? (C/C++) (STL)  }

43(原創) 如何讀取文字檔? (C/C++) (STL)  
44(原創) 如何讀取文字檔? (C/C++) (STL)  delete []arr;
45(原創) 如何讀取文字檔? (C/C++) (STL)
46(原創) 如何讀取文字檔? (C/C++) (STL)  return 0;
47(原創) 如何讀取文字檔? (C/C++) (STL)}

執行結果
(原創) 如何讀取文字檔? (C/C++) (STL)00001  Peter Hsiao  555.55
(原創) 如何讀取文字檔? (C/C++) (STL)
00002  John Lin  222.12