1. 程式人生 > >一行一行讀入文字檔案

一行一行讀入文字檔案

下面是一個例子,它讀入Autoexec.bat的第一行。
    #include <stdio.h>#include <stdlib.h>main(){FILE * fp;char s[256];if((fp = fopen("c://autoexec.bat", "r")) == NULL){printf("Can't open file/n");return;}fgets(s, 256, fp);printf("Line1 : %s/n", s);fclose(fp);} 
 //檔案流和string的結合是最佳的:#include <iostream>#include <fstream>#include <strstream>
#include <string>using namespace std;int main(){string line;ifstream input("input.txt",ios::in);strstream temp;while(1){getline(input,line);if(input.eof()) break;//一行資料已經存入line中,可以對其進行處理,此處只是將其輸出cout << line << endl;}input.close();return 0;}
使用get(   )和put(   )  
   
  #include   <fstream.h>  
  void   main()  
  {  
          fstream   File("test_file.txt",ios::out   |   ios::in   |   ios::binary);  
          char   ch;  
          ch='o';  
          File.put(ch);   //   將ch的內容寫入檔案  
          File.seekg(ios::beg);   //   定位至檔案首部  
          File.get(ch);   //   讀出一個字元  
          cout   <<   ch   <<   endl;   //   將其顯示在螢幕上  
          File.close();  
  }  
使用read(   )和write(   )  
   
  #include   <fstream.h>  
  #include   <string.h>  
   
  void   main()  
  {  
          fstream   File("test_file.txt",ios::out   |   ios::in   |   ios::binary);  
          File.write(arr,5);   //   將前5個字元——"Hello"寫入檔案  
          File.seekg(ios::beg);   //   定位至檔案首部  
          static   char   read_array[100000],readOne[1];   //   在此我將打算讀出些資料  
          int   i   =   0;  
          do  
          {  
                  File.read(readOne,1);   //   讀出1個字元  
                  if(readOne[0]=='s')  
                  {  
                      ...  
                  }  
                  i++;  
          }  
          File.close();  
  }