2017-07-26 132 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