Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “此代码是什么意思?”;流fout(getenv(“输出路径”)&引用;_C++_C++11 - Fatal编程技术网

C++ “此代码是什么意思?”;流fout(getenv(“输出路径”)&引用;

C++ “此代码是什么意思?”;流fout(getenv(“输出路径”)&引用;,c++,c++11,C++,C++11,我还是cpp的新手,如果有人能帮助我理解这一行代码,我会提出建议: ofstream fout(getenv("OUTPUT_PATH")); 这段代码我看到几乎每一个黑客都排名challange。这段代码的目的是什么?它正在创建一个输出文件流,其文件名为环境变量“output\u PATH”设置为的任何文件名。我说,如果有疑问,请简化 当某件事情看起来太复杂,乍一看就没有意义时,想办法把它分成对你有意义的小块 ofstream fout(getenv("OUTPUT_PATH")); 可以

我还是cpp的新手,如果有人能帮助我理解这一行代码,我会提出建议:

ofstream fout(getenv("OUTPUT_PATH"));

这段代码我看到几乎每一个黑客都排名challange。这段代码的目的是什么?

它正在创建一个输出文件流,其文件名为环境变量“output\u PATH”设置为的任何文件名。

我说,如果有疑问,请简化

当某件事情看起来太复杂,乍一看就没有意义时,想办法把它分成对你有意义的小块

ofstream fout(getenv("OUTPUT_PATH"));
可以分成两部分

auto res = getenv("OUTPUT_PATH");
ofstream fout(res);
您可以查看以了解第一行的作用。在您的例子中,它返回环境变量
OUTPUT\u PATH
的值。执行该行后,
res
将是该值

您可以通过查找来了解第二行的作用。在您的例子中,它使用环境变量
OUTPUT\u PATH
的值构造一个
of stream
对象

在该行之后,可以使用
fout
对象写入流。输出将在环境变量
output\u PATH
定义的文件中可用


Hacker Rank
之所以这样做,是因为他们有100或1000个用户同时运行相同的代码。为了确保每次运行都使用唯一的输出文件,他们在运行代码之前将
output\u PATH
设置为唯一的名称。这将导致输出将被放入一个唯一的文件中。然后,
Hacker Rank
上的包装器代码会将文件的输出与预期的输出进行比较。

这很简单。它采用输出环境路径并通过 输出流的对象,即fout

希望你还记得 ios_base->ios->ostream->ofstream

根据参考资料

std::of Stream

流的类型定义基本流

要对文件进行操作的输出流类

std::getenv

在标题
cstdlib

char* getenv( const char* env_var );
在主机环境(OS)提供的环境列表中搜索与env_var指向的C字符串匹配的字符串,并返回指向与匹配的环境列表成员关联的C字符串的指针

使用以下工具查看您的主路径:

#include <iostream>
#include <cstdlib>

int main()
{
    if(const char* env_p = std::getenv("PATH"))
        std::cout << "Your PATH is: " << env_p << '\n';
}
#包括
#包括
int main()
{
if(const char*env_p=std::getenv(“路径”))

std::难道你不清楚这其中的哪一部分?