2017-07-26 179 views
-14

我在Omnet ++模擬器中做了一個C++代碼,其中我遇到了這段代碼。有人可以解釋hpw是這個序列的工作嗎?C++澄清

char *st = "data.enc"; 

std::ofstream myfile; 
myfile.open(st,std::ios_base::app); //Please provide explnation for this line 
printf("\n AES encryption:\n"); 
for(i=0;i<4*4;i++) 
{ 
    printf("%02x ",out[i]+l); 

    myfile <<out[i]+l<<"\n"; 
} 

printf("%02x ",out[i]);//What is out[i] ? 
myfile.close(); 
printf("\n\n"); 
+3

'std :: ofstream'是一個標準的,有據可查的類型。還是你問如何來一個成員函數調用? – StoryTeller

+0

http://en.cppreference.com/w/cpp/io/ios_base/openmode – Steeve

+0

你必須幫助我們''出''它沒有在給定的代碼中的任何地方定義。如果它不是一個無符號整數的數組(或指向數組的指針),那麼你將會遇到一段糟糕的時間。 – user4581301

回答

3
std::ofstream myfile; 
myfile.open(st,std::ios_base::app); //Please provide explnation for this line 

打開追加模式的文件。這意味着插入將被附加到文件的末尾而不是覆蓋它。

for(i=0;i<4*4;i++) 
{ 
    printf("%02x ",out[i]+l); 

    myfile <<out[i]+l<<"\n"; 
} 

注意到在從16個第一元件和:

printf("%02x ",out[i]+l); 

打印他們以十六進制格式,好像他們是字節。 0表示填充0直到達到所需的長度(2)。 x表示以十六進制打印。

myfile <<out[i]+l<<"\n"; 

出追加的內容加1

printf("%02x ",out[i]);//What is out[i] ? 

打印出[16](這時不添加一個)在2位十六進制格式。

myfile.close(); 

關閉文件。

printf("\n\n"); 

打印兩個空行。

+0

謝謝大家的探索。所以現在我想知道我的文件在哪裏讀取值並在其中寫入。任何調查結果? – Daks

+0

std :: ofstream myfile; myfile.open(st,std :: ios_base :: app); – Daks