2017-04-24 70 views
-1

所以我想寫一些代碼,在命令行
的作用像type這意味着當我寫入文本文件名稱時,它顯示它的內容。
我寫了這個:
試圖從命令行打開一個文件

int main(int argc, char* argv[]) 
{ 
    FILE *t; 
    t = fopen(argv[1], "r");  // tring to open file from command line 
    if (t == NULL){ 
     cout << "the file doesnt exists\n"; 
     return 0; 
    } 
    else{ 
     fseek(t, 0, SEEK_END); 
     int size = ftell(t); 
     fseek(t, 0, SEEK_SET); 

     char* x = new char[size]; 

     fread(x, size, 1, t); 

     for (int i = 0; i<size; i++) 
     { 
      cout << x[i]; 

     } 


     delete[] x; 
    } 




     return 0; 
    } 

我調試斷言失敗錯誤

Exppression:file!=NULL <br> 
+0

這是一個好主意,檢查你有足夠的參數在你嘗試使用它們之前。要使用'argv [1]','argc> 1'必須爲真。 – InternetAussie

+0

這正是它的錯誤。 @InternetAussie – Arey

+0

什麼是「Exppression」?我很難相信這真的是你得到的信息。 –

回答

2

使用參數從argv之前,請確保有足夠的滿足您的需求:

if (argc > 1) { 
    // We have enough args in argv, go for it 
    t = fopen(argv[1], "r"); 
} else { 
    /* do something else that doesn't need argv[1] i.e. ask the user */ 
} 
相關問題