Внутри строк C (и многих других языков, использующих те же правила экранирования), \
должно быть \\
, поскольку это символ экранирования. Позволяет вводить обычным текстом непечатаемые символы, такие как:
- символ табуляции
\t
.
- символ возврата каретки
\r
.
- символ новой строки
\n
.
- другие, которые я не буду подробно освещать.
Поскольку \
используется в качестве escape-символа, нам нужен способ поместить фактический '\'
в строку. Это делается с помощью последовательности \\
.
Поэтому ваша строка должна быть:
system("copy c:\\hello.txt c:\\hello2.txt");
Иногда это может привести к неясным ошибкам с такими командами, как:
FILE *fh = fopen ("c:\text.dat", "w");
, где \t
- это на самом деле символ tab
, а файл, который вы пытаетесь открыть:
c : TAB e x t . * ** 1 049 тысяча сорок-восемь * д * тысячи пятьдесят-одны * а * ** 1053 тысяча пятьдесят два * T . * +1055 *