【问题标题】:C++ clarificationC++ 说明
【发布时间】:2018-01-01 08:07:37
【问题描述】:

我正在 Omnet++ 模拟器中编写 C++ 代码,我遇到了这段代码。有人可以解释一下 hpw 这个序列是否有效?

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");

【问题讨论】:

  • std::ofstream 是一个标准的、有据可查的类型。或者你是在问成员函数调用是怎么出现的?
  • 您必须在out 上帮助我们,它在给定代码中的任何地方都没有定义。如果它不是无符号整数的数组(或指向数组的指针),那你的日子就不好过了。
  • 您可以通过查看out 的声明来确定out[i] 是什么。如果你还是不明白,一本介绍性的书是个好主意。

标签: c++ omnet++


【解决方案1】:
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";

追加out加1的内容。

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

以 2 位十六进制格式打印出 [16](这次不加一)。

myfile.close();

关闭文件。

printf("\n\n");

打印两个空行。

【讨论】:

  • 谢谢大家的解释。所以现在我想知道我的文件从哪里读取值并写入其中。请问有什么发现吗?
  • std::ofstream myfile; myfile.open(st,std::ios_base::app);
猜你喜欢
  • 2016-06-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多