Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 235
от 06.11.2005, 15:06

Администратор:Калашников О.А.
В рассылке:Подписчиков: 227, Экспертов: 33
В номере:Вопросов: 3, Ответов: 11


Вопрос № 28631: Уважаемые эксперты, подскажите способ задания динамического двумерного массива, как проще его организовать? (желательно на примере). ...
Вопрос № 28683: Приветствую. Подскажите, пожалуйста, как консольное приложение заставить «говорить» на русском? Например, ту же Win32 Console Application, что-то в духе cputs(“строка на русском ”); Разумеется я сначала прошарил справку VS .NET 2003. ...
Вопрос № 28694: Здраствуйте уважаемые эксперты, я совсем новичок, и мне надо скомпилировать один проект, при компилировании мне в низу пишет: ------ Build started: Project: as, Configuration: Debug Win32 ------ Compiling... as.cpp c:documents and se...

Вопрос № 28.631
Уважаемые эксперты, подскажите способ задания динамического двумерного массива, как проще его организовать? (желательно на примере).
Отправлен: 31.10.2005, 17:13
Вопрос задал: GINes (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: estiGi
Здравствуйте, GINes!
пожалуйста.
(см. приложение)
в общем, размерность массива не имеет значения. Будет просто увеличиваться количество звездочек и внутренних циклов и... главное не запутаться :)

Приложение:

Ответ отправил: estiGi (статус: 4-ый класс)
Отправлен: 31.10.2005, 21:06

Отвечает: kalash-lox
Здравствуйте, GINes!
int n, m;
cin >> n >> m;
int **mas = new (int*)[n];
*mas = new int[m];
Ответ отправил: kalash-lox (статус: Заблокирован)
Отправлен: 31.10.2005, 21:10

Отвечает: Bob Johnson
Здравствуйте, GINes!
Если это оправдано, то используй STL. там есть несколько типов "массивов" - vector, list, stack...
typedef vector intvector1;
typedef vector intvector2;
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 31.10.2005, 22:55

Отвечает: Raptor1
Здравствуйте, GINes!
Если хочешь обращаться к массиву именно в стиле a[i][j], то сделать это модно так, a должен быть некоторым объектом имеющим смысл указателя (допустим T*), т.е. с перегруженными операциями -> и T*(), а объект T тоже должен иметь смысл указателя, но уже нужного тебе типа. Как ты сделаешь само управление памятью зависит от твоей фантазии, хоть динамическое, хоть фиксированное.
Ответ отправил: Raptor1 (статус: 9-ый класс)
Отправлен: 02.11.2005, 23:39


Вопрос № 28.683
Приветствую.

Подскажите, пожалуйста, как консольное приложение заставить «говорить» на русском? Например, ту же Win32 Console Application, что-то в духе cputs(“строка на русском ”);
Разумеется я сначала прошарил справку VS .NET 2003. Нашёл. Подставляю и получаю syntax error. Я СОВСЕМ зелёный. Пожалуйста, помогите разобраться! Конкретный примерчик, если можно, что-то типа:

#include "stdafx.h"
#include<conio.h>

int _tmain()

{
cputs(“……… ”);
}

Где что нужно указать?

Спасибо.
Отправлен: 01.11.2005, 12:15
Вопрос задал: untitled (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Denis Hakimov
Здравствуйте, untitled!
Проблема в том, что в DOS используется другая кодировка и обычные ANSI строки на русском там будут отображаться как иероглифы :). Чтобы этого избежать необходимо менять кодировку с помощью функций, которые находятся в заголовочном файле ["winuser.h"] (Вы можете написать [#include "windows.h"], т.к. он включает в себя все эти файлы) - ANSIToOem, CharToOem, и некоторые другие.
Обычно у этих функций всего 2 параметра - строка, которую нужно перевести и строка в которую будет записан результат. В приложении простейщий пример, не забудьте подключить файлы заголовков ["windows.h"]. Программа выводит одну и ту же строку сначала в кодировке ANSI а затем в OEM.
Удачи!

Приложение:

Ответ отправил: Denis Hakimov (статус: 4-ый класс)
Отправлен: 01.11.2005, 13:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо, что помог разобраться.

Отвечает: estiGi
Здравствуйте, untitled!
Здесь подробно описано, как с эти бороться:
http://rsdn.ru/article/qna/ui/concp.xml
Ответ отправил: estiGi (статус: 4-ый класс)
Отправлен: 01.11.2005, 14:06
Оценка за ответ: 5
Комментарий оценки:
Благодарю за ссылку. Весьма познавательно :)

Отвечает: Raptor1
Здравствуйте, untitled!
Используй AnsiToOem и OemToAnsi
Ответ отправил: Raptor1 (статус: 9-ый класс)
Отправлен: 02.11.2005, 23:38
Оценка за ответ: 4


Вопрос № 28.694
Здраствуйте уважаемые эксперты, я совсем новичок, и мне надо скомпилировать один проект, при компилировании мне в низу пишет:
------ Build started: Project: as, Configuration: Debug Win32 ------
Compiling...
as.cpp
c:documents and settingsadministratormy documentsvisual studio 2005projectsasasas.cpp(112) : fatal error C1083: Cannot open include file: 'ws2tcpip.h': No such file or directory
Build log was saved at "file://c:Documents and SettingsAdministratorMy DocumentsVisual Studio 2005ProjectsasasDebugBuildLog.htm"
as - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я так понимаю что у меня нет 'ws2tcpip.h' подскажите од куда его взять и как можно мне исправить положение?
Заранее спасибо.
Отправлен: 01.11.2005, 14:43
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: estiGi
Здравствуйте, Станислав!
тебе для начала надо бы разобраться, есть ли у тебя этот файл в системе (от 2005й студии можно всего ожидать). Потом надо посмотреть, находится ли этот файл в подключаемых директориях (смотреть в опциях студии).
Потом убедиться, нужно ли тебе его вообще подключать к программе?? Если сильно надо, но не получается, скопируй его в папку с проектом, тогда он найдется явно
Ответ отправил: estiGi (статус: 4-ый класс)
Отправлен: 01.11.2005, 15:17

Отвечает: Boriss
Здравствуйте, Станислав!
У меня нет 2005, но такой файл есть в
\Program Files\Microsoft Visual Studio\VC98\Include
\BC5\Include
\MinGW\Include
Попробуйту запустить поиск файла на компе.
Это что? Наверно, пример?
---------
Прорвемся! (Быть может :(( )
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 01.11.2005, 17:19

Отвечает: azat
Здравствуйте, Станислав!
У меня в Visual Studio 6.0 находится в:
C:Program FilesMicrosoft Visual StudioVC98Include
А в Visual Studio 7.0:
C:Program FilesMicrosoft Visual Studio .NET 2003Vc7PlatformSDKInclude

Хотя, возможно, у Вас в проекте вместо
#include <ws2tcpip.h>
написано
#include "ws2tcpip.h"

Если же Вы не нашли данный файл вот ссылка:
http://azaty.narod.ru/WS2tcpip.rar
Ответ отправил: azat (статус: 5-ый класс)
Отправлен: 01.11.2005, 23:13

Отвечает: Raptor1
Здравствуйте, Станислав!
А ты поищи его на дисках, он скорее всего есть, но к нему надо указать или полный путь, или включить его в меню tools/options/directories
Ответ отправил: Raptor1 (статус: 9-ый класс)
Отправлен: 02.11.2005, 23:37


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное