Что означает этот код "ofstream fout (getenv (" OUTPUT_PATH "));" - PullRequest
0 голосов
/ 04 сентября 2018

Я все еще новичок в cpp, и я буду признателен, если кто-то может помочь мне понять эту строку кода:

ofstream fout(getenv("OUTPUT_PATH"));

Этот код я видел почти каждый вызов Hacker Rank. Какова цель этого кода?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Я говорю, если сомневаешься, упрости.

Когда что-то кажется слишком сложным и на первый взгляд не имеет смысла, найдите способы разбить его на более мелкие кусочки, которые имеют смысл для вас.

ofstream fout(getenv("OUTPUT_PATH"));

можно разбить на две части.

auto res = getenv("OUTPUT_PATH");
ofstream fout(res);

Вы можете посмотреть документацию в getenv(), чтобы понять, что делает первая строка. В вашем случае он возвращает значение переменной окружения OUTPUT_PATH. После выполнения строки значение будет res.

Вы можете поискать документацию для конструкторов ofstream, чтобы понять, что делает вторая строка. В вашем случае он создает объект ofstream, используя значение переменной среды OUTPUT_PATH.

После этой строки вы можете использовать объект fout для записи в поток. Вывод будет доступен в файле, определяемом переменной среды OUTPUT_PATH.

Причина, по которой Hacker Rank делает это, заключается в том, что у них 100 или 1000 пользователей используют один и тот же фрагмент кода в одно и то же время. Чтобы каждый прогон использовал уникальный выходной файл, перед запуском кода они устанавливают уникальное имя OUTPUT_PATH Это приведет к тому, что вывод будет помещен в уникальный файл. Код оболочки на Hacker Rank затем сравнит вывод из вашего файла с ожидаемым выводом.

0 голосов
/ 04 сентября 2018

Создает поток выходного файла с именем файла любой переменной среды "OUTPUT_PATH", установленной в.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...