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