2011-11-24 127 views
2

我寫這將打開一個文件中的程序文​​件,然後通過行顯示行的內容(文本文件)C++打開只讀

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main (int argc, char* argv[]) 
{ 
    string STRING;   
    ifstream infile;  
    infile.open(argv[1]); 
    if (argc != 2) 
    { 
     cout << "ERROR.\n"; 
     return 1; 
    } 
    if(infile.fail()) 
    { 
     cout << "ERROR.\n"; 
     return 1; 
    } 
    else 
    { 
     while(!infile.eof()) 
     { 
      getline(infile,STRING); 
      cout<<STRING + "\n"; 
     } 
     infile.close(); 
     return 0; 
    } 
} 

什麼我需要添加,使文件中讀取只要 ?

infile.open(argv[1])就是猜某事)

+0

OT:不要做'while(!infile.eof())',做'while(getline(infile,STRING)) ' – Bart

+0

@請詳細說明 – oddRaven

回答

13

ifstream是讀書不但如此,問題就迎刃而解了。另外,你真的想要檢查argc使用argv[1]

在另一方面,當您使用fstream你需要指定要如何打開文件:

fstream f; 
f.open("file", fstream::in | fstream::out); /* Read-write. */ 
1

ifstream類的默認模式參數的openios::in。也就是說

infile.open(argv[1]); 

是一樣的:

infile.open(argv[1], ios::in); 

那麼,你是在只讀模式打開文件。

0

您已經打開該文件以進行只讀操作。如果您使用ifstream,則無法寫入。偶:

infile.rdbuf()->sputc('a'); 

保證失敗。