Как отобразить относительный путь к файлу в инструкции cout - PullRequest
1 голос
/ 10 апреля 2020

Я пытаюсь отобразить относительный путь к моему программному файлу в инструкции cout, чтобы он отображался на экране. Это то, что я записал, но компьютер ошибочно принимает backsla sh как последовательность выхода. Он представляет следующую ошибку:

Fross12. cpp: 62: 12: предупреждение: неизвестная escape-последовательность: '\ C'

Это код Я написал, что работаю с:

cout << "C:\COSC-1303\Assignment-12> Fross12.exe < big-coin-file.txt" << endl;

Я хочу, чтобы на компьютере было показано следующее:

C: \ COS C - 1303 \ Assignment-12> Fross12.exe

Ответы [ 2 ]

2 голосов
/ 10 апреля 2020

В C ++ (и большинстве других языков, основанных на C), \ используется для обозначения escape-символа (например, \ r, \ n, \ t, et c). Если вы хотите, чтобы в вашей строке был символ «\», вы должны экранировать его: \.

В вашем случае код должен быть изменен как: cout << "C:\\COSC-1303\\Assignment-12> Fross12.exe < big-coin-file.txt" << endl;

Из C + +11, мы также можем использовать необработанную строку для обработки строки без обработки escape-символов. Чтобы создать необработанную строку, используйте синтаксис: R "(your_string_value)".

Например: cout << R"(C:\COSC-1303\Assignment-12> Fross12.exe < big-coin-file.txt)" << endl;

0 голосов
/ 10 апреля 2020

Либо используйте \\ для экранирования символа backsla sh, чтобы он не интерпретировался как особый, или , просто используйте косую черту / - Это работает как для Windows, Unix, так и для других Операционные системы.

Вы также можете использовать необработанный строковый литерал как R"my_raw_str(C:\whatever)my_raw_str".

Вы также можете использовать std :: filesystem :: path , который позаботится обо всех деталях для вас.

...