Доброе время суток, Стас! Недавно помоему уже задавался этот вопрос. Для консольного приложения в любой ide для windows: способ 1: #include <windows.h> ......... char s[] = "привет";CharToOem(s,s); cout << s; способ 2: набирать текст в редакторе, понимающем dos-кодировку, и писать в ней соответственно способ 3: написать свой аналог CharToOem способ 4: написать утилиту, переводящуюю файлы cpp из win в dos ЗЫ:Для наработки опыта работы со стоками предподчительней 3 и 4 варианты Ответ отправлен: 20.06.2004, 19:38 Отправитель: bocha
Вопрос № 1718
Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, почему компилятор ругается во втором случае, а в первом нет? (I) (1)char*p1="Vasia"; (2)char p2[ ]="Vasia"; (3)char*p3; (4)p3=p2; (II) (5)char*dp1[ ]={"Vasia","Grisha"}; (6)char dp2[ ][7]={"Vasia","Grisha"}; (7)char**dp3; (8)dp3=dp2;
Приветствую Вас, Alexander! потому, что в первом случае все правильно, а во втором-нет:) dp2 можно безболезненно конвертировать в char*(c помощью оператора приведения типа reinterpret_cast(dp2) или (char*)dp2, иначе т.ж. ругаться будет), но никак не в char**, т.к. char dp[m][n] <=> char dp[m*n], в первом случае ты обращаешься dp[i][j], а во втором dp[i * n + j] кстати dp3=dp1;- можно присваивать, т.к. dp1- массив указателей, а имя массива можно использовать как константный указатель. Ответ отправлен: 20.06.2004, 20:09 Отправитель: bocha Отвечает vitya
Добрый день, Alexander! Потому что, дп2 имеет тип не приводимый к char **. Ответ отправлен: 21.06.2004, 08:44 Отправитель: vitya
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.