您的位置:首页 > 编程语言 > C语言/C++

c++使用getline和ifstream读取文件

2014-06-19 22:29 543 查看

 #include < iostream > 


 #include < fstream > 


 #include < string> 


 


 using namespace std;


 


 // 输出空行 


 void OutPutAnEmptyLine()


 {


      cout << " /n " ;


 } 


 


 // 读取方式:
逐词读取, 词之间用空格区分


 // read
data from the file, W ord B y W ord


 // when
used in this manner, we'll get space-delimited bits of text from the file


 // but
all of the whitespace that separated words (including newlines) was lost. 


 void ReadDataFromFileWBW()


 {


      ifstream fin( " data.txt " );  


      string s;  


      while ( fin >> s



      {    


          cout << " Read
from file: " << s << endl;  


      } 


 } 


 


 // 读取方式:
逐行读取, 将行读入字符数组, 行之间用回车换行区分


 // If
we were interested in preserving whitespace, 


 // we
could read the file in L ine-B y-L ine using the I/O getline() function. 


 void ReadDataFromFileLBLIntoCharArray()


 {


      ifstream fin( " data.txt " ); 


      const int LINE_LENGTH = 100 ; 


      char str[LINE_LENGTH];  


      while ( fin.getline(str,LINE_LENGTH) )


      {    


          cout << " Read
from file: " << str << endl;


      } 


 } 


 


 // 读取方式:
逐行读取, 将行读入字符串, 行之间用回车换行区分


 // If
you want to avoid reading into character arrays, 


 // you
can use the C++ string getline() function to read lines into strings 


 void ReadDataFromFileLBLIntoString()


 {


      ifstream fin( " data.txt " );  


      string s;  


      while ( getline(fin,s) )


      {    


          cout << " Read
from file: " << s << endl; 


      } 


 } 


 


 // 带错误检测的读取方式


 // Simply
evaluating an I/O object in a boolean context will return false 


 // if
any errors have occurred 


 void ReadDataWithErrChecking()


 {


      string filename = "dataFUNNY .txt " ;  


      ifstream fin( filename.c_str());  


      if ( ! fin



      {   


          cout << " Error
opening " << filename << " for
input " << endl;   


          exit( - 1 );  


      } 


 } 


 


 int main()


 {


      ReadDataFromFileWBW(); // 逐词读入字符串 


      OutPutAnEmptyLine(); // 输出空行 


 


      ReadDataFromFileLBLIntoCharArray(); // 逐词读入字符数组 


      OutPutAnEmptyLine(); // 输出空行 


 


      ReadDataFromFileLBLIntoString(); // 逐词读入字符串 


      OutPutAnEmptyLine(); // 输出空行 


 


      ReadDataWithErrChecking(); // 带检测的读取 


      return 0 ;


 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: