Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > unknown escape sequence '\W'


Автор: DragoonFighter 7.12.2007, 22:57
M:\C\Dev-Cpp\main.cpp unknown escape sequence '\W' 
Чтото ошибка не понятная, кто не будь встречался с нею или знает ли кто что делать?


Автор: bsa 7.12.2007, 23:01
проверь исходный код, на кривые символы. Скорее всего, у тебя, например, русская буква вне комментария затесалась.

Автор: DragoonFighter 7.12.2007, 23:07
У меня все стоит в кавычках, значит должно вроде идти без проблем. Или компилятор читает то место как чтото другое, т.е. как не текст в кавычках. 
Код

ofstream del;
del.open ("del.bat", ios::binary);
del << "del C:\WPI_Log.txt" << endl;
вуд.close();


Ошибку выдает на третей линии.

Добавлено @ 23:10
Теоретически чтото не то с \W. 

Автор: bsa 7.12.2007, 23:18
Все правильно. обратные слэши надо экранировать: "\\" - правильно, "\" - неправильно.

Автор: zkv 7.12.2007, 23:18
"del C:\\WPI_Log.txt"?

Автор: DragoonFighter 7.12.2007, 23:31
bsa з
Спасибо работает, запомню на будущее. Но по скольку я создал del и туда должно вписываться "del C:\WPI_Log.txt" и теперь вписал del "C:\\WPI_Log.txt" то он создает файл del и вписывает туда что стоит, т.е. два слеша, при запуске, дел больше не работает, потомучто не может найти файл.

Добавлено @ 23:35
Можно создать стринг где стоит "del C:\WPI_Log.txt"  и вводим в наш del. Или если не пойдет то вводим "C:\\WPI_Log.txt" и с помощью x.find вырезаем наш слешь.

Добавлено @ 23:39
т.е.:

Код

string x = "del C:\\WPI_Log.txt";
x.substr(7);
ofstream del;
del.open ("del.bat", ios::binary);
del << x << endl;
del.close();


Правельно?

Автор: bsa 7.12.2007, 23:53
DragoonFighter, при компиляции один из слэшей будет убран, поэтому выводиться должно с одним слэшем.

Автор: DragoonFighter 8.12.2007, 00:04
Нет я пробовал не идет нужно в ручную вырезать. 

Автор: bsa 8.12.2007, 00:18
Код
#include <stdio.h>
int main()
{
     printf("del C:\\WPI_Log.txt\n");
     return 0;
}
Код
 $ ./a.out 
del C:\WPI_Log.txt

Автор: DragoonFighter 8.12.2007, 00:57
bsa
Да в таком случаи он выдает нам так как вы сказали, но если я создаю файл и в нем вписываю текст с двойным слешем, то он и вписывает в этот файл двойной слеш.
Код

string x = "del C:\\WPI_Log.txt";
x.substr(7);
ofstream del;
del.open ("del.bat", ios::binary);
del << x << endl;
del.close();

del.bat:
Код

del C:\WPI_Log.txt


а если:
Код

ofstream del;
del.open ("del.bat", ios::binary);
del << "del C:\\WPI_Log.txt" << endl;
del.close();

del.bat:
Код

del C:\\WPI_Log.txt

Автор: UnrealMan 8.12.2007, 11:50
Так быть не должно. Выбрось свой devcpp.

Автор: JackYF 8.12.2007, 14:40
Цитата(UnrealMan @  8.12.2007,  11:50 Найти цитируемый пост)
Так быть не должно. Выбрось свой devcpp. 

К сожалению для топик стартера, +1. Либо проверь всё ещё раз, уж больно это странно.

Автор: archimed7592 8.12.2007, 16:25
Да быть такого не может smile.

Кстати, я бы посоветовал переименовать del.bat в mydel.bat из соображений предотвращения рекурсии smile.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)