2016-01-22 61 views
-1

我有以下代碼:fstream的在出代碼::塊錯誤

std::fstream out; 

out.open(argv[1], std::fstream::in | std::fstream out); 
if(out.is_open()){ 

在編譯時Code::Blocks,我得到以下錯誤:

expected primary-expression before "out"

任何想法,這可能是導致這錯誤?


我試圖重寫文件5倍

#include <fstream> 
#include <iostream> 

int main(int argc, char** argv) { 
    if (argc<2){ 
     printf("Error! Usage: wrap.exe filename\n"); 
     return -1; 
    } 
    std::fstream out; 

    out.open(argv[1], std::fstream::in | std::fstream out); 
    if(out.is_open()){ 

    out.seekp(0,out.beg); 
    for(int i=0;i<5;i++) 
    { 
     while(!out.eof()){ 
     out<<i; 
         } 
    } 
    } 
else { 
    printf("Error! Problem with opening file to wrap!\n"); 
    return -1; 
} 
out.close(); 
printf("File wrapped successfully!\n"); 
    return 0; 
} 
+0

「編譯代碼::塊」或「用*代碼::塊編譯*」? Code :: Blocks在任何情況下都不是編譯器,它是一個IDE。 – Clifford

+0

這不是問題,但您應該使用構造函數來打開文件。 'std :: fstream out(argue [1]);'會做你需要的。不需要單獨調用'open',也不需要模式參數,因爲它們是默認值(調用'open':out.open(argv [1]);''就足夠了) 。 –

回答

4

您在openstd::fstreamout之間寫了一個空間,而不是::