| Результаты поиска | 
|  | 
| 
| Hagrael | Дата: Понедельник, 17 Января 2011, 12:43 | Сообщение # 21 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Аналогичный результат. Пробовал и с setLocaleCP (или как там эта функция называется), тоже 0. Добавлено (17.01.2011, 12:43)---------------------------------------------
 Я что-то так и не понял, что такое линкер. Это препроцессор что ли?
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Пятница, 14 Января 2011, 14:35 | Сообщение # 22 | Тема: #if |  |   почетный гость Сейчас нет на сайте | ezhickovich, пробовал и в Code::Blocks, и в Visual Studio. Результат одинаков - каракули. И у др. людей тоже каракули. Добавлено (14.01.2011, 14:35)---------------------------------------------
 
 Code #include <iostream> using namespace std;
 int main() {
 setlocale( LC_ALL, "Russian" );
 cout << "Привет!" << endl;
 cin.get();
 return 0;
 }
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Пятница, 14 Января 2011, 14:25 | Сообщение # 23 | Тема: #if |  |   почетный гость Сейчас нет на сайте | ezhickovich, это не работает (да-да, я писал в функции main). 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Пятница, 14 Января 2011, 14:19 | Сообщение # 24 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Quote (ezhickovich) На все вопросы уже есть ответы... (угадай где...) Даже не знаю...
  Кст., вот проблемка - не выводится русский текст в консоли. Пытался и менять кодировку, и то, и сё, ничего не помогает. Не могли бы вы кинуть рабочий код просто вывода слова "Привет" на русском? 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Пятница, 14 Января 2011, 14:15 | Сообщение # 25 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Quote (ezhickovich) C++ Без страхаЩас посмотрим, что за вещь.
 Добавлено (14.01.2011, 14:15)---------------------------------------------
 Кст., за книгу спасибо, интересно и просто написана. Но т. к. в ней написаны не все нюансы, за ними я буду приходить сюда =)
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Четверг, 13 Января 2011, 12:50 | Сообщение # 26 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Quote (ezhickovich) Hagrael, Хватит тупых вопросов, учи C++... (не надо начинать сразу с игр!) Да я и учу "C++. От основ до игр". А можете кинуть ссылку на другой онлайн-учебник по C++? Я прогуглил всё, ничего не нашёл.
 
 Quote (GECK) void initGame(bool **map); //посылается указатель на map[0][0](сам массив). Фишка в том, что из него можно получить доступ к любому его элементу. Но ведь при * должно посылаться значение, а не указатель. Ладно, почитаю статьи, попытаюсь понять.
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Среда, 12 Января 2011, 18:46 | Сообщение # 27 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Я вот так понимаю: 
 Code void initGame(bool **map); //в initGame посылаются значения указателей map'a о_О 
 bool **map = new bool*[20]; //значнеия указателей <img src="http://s12.ucoz.net/sm/1/wacko.gif" border="0" align="absmiddle" alt="wacko"> Ничё не понял
 
 void initGame(bool **map) {...} // Здесь также принимаются ЗНАЧЕНИЯ указателей, а ведь должен на самом деле передаваться массив - сам указатель. Или нет?
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Среда, 12 Января 2011, 17:12 | Сообщение # 28 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Не могу понять строки: 
 Code  void initGame(bool **map);
 
 bool **map = new bool*[20];
 
 void initGame(bool **map) {...}
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Среда, 12 Января 2011, 15:39 | Сообщение # 29 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Matou, большое спасибо, понял, но 2 ** тогда что означают? 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Среда, 12 Января 2011, 15:30 | Сообщение # 30 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Такс. Массив - это на самом деле указатель на первую ячейку, и когда мы пишем A[5], на самом деле выполняется операция *(A+5). А что здесь * делает? Извините, если туплю   
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Среда, 12 Января 2011, 14:22 | Сообщение # 31 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Хм... В общем при такой записи: 
 в памяти создаётся массив, а в A заносится указатель на 0-ю ячейку. А как тогда осуществляется это:
 
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Среда, 12 Января 2011, 13:41 | Сообщение # 32 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Начал читать статью про указатели и ничего не понял. Любой массив - указатель на первый элемент массива... ?! То есть на самом деле массив указывает на 0-ю ячейку массива... А в ячейке этой что написано какому массиву она принадлежит? о_О 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Вторник, 11 Января 2011, 18:34 | Сообщение # 33 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Kornival, а что вообще значит ** ? Сколько уровней у массива? 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Вторник, 11 Января 2011, 18:12 | Сообщение # 34 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Kornival, не понял, что значит динамически?   
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Вторник, 11 Января 2011, 13:49 | Сообщение # 35 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Quote (GECK) Я так понял, что под инициализацией подразумевался порядок объявления. Именно так =) А в коде я ступил - написал всё не совсем в том порядке, извините (это касается return). Я думал, что всё так:
 Вначале все функции и классы заносятся в память, затем уже вызывается функция main и далее выполняется программа. Дело в том, что ранее я работал с JS, а в нём таких проблем нет, там хоть в конце кода напиши функцию, она будет а) инициализирована сразу б) если это функция a, и она вызывается из функции b, то если в момент её вызова из b она будет инициализирована, то всё будет good. А в C++ мне непонятно, почему функции, определённые раньше других не могут видеть эти "поздние" функции. И каким образом влияют прототипы не понял. Если объявишь прототип, то функция будет знать, что после неё объявлена другая, не объявишь - нет. о_О
 Добавлено (11.01.2011, 13:48)---------------------------------------------
 Вот весь код:
 
 Code #include <iostream> #include <stdlib.h>
 #include <conio.h>
 
 using namespace std;
 
 void initGame(bool **map);
 
 int main() {
 char act;
 int char_code, x=0, y=0;
 bool game_continues=true, map[20][15];
 
 initGame(map);
 
 while (game_continues) {
 for (int i=0; i<20; i++) {
 for (int j=0; j<15; j++) {
 if (map[i][j]==true) {cout << "P";} else {cout << " ";}
 }
 cout << "\n";
 }
 act=_getch();
 system("CLS");
 char_code=static_cast<int>(act);
 switch(char_code) {
 case 27:
 game_continues=false;
 break;
 case 75:
 if (x>0) {
 map[y][x]=false;
 x-=1;
 map[y][x]=true;
 }
 break;
 case 77:
 if (x<14) {
 map[y][x]=false;
 x+=1;
 map[y][x]=true;
 }
 break;
 case 72:
 if (y>0) {
 map[y][x]=false;
 y-=1;
 map[y][x]=true;
 }
 break;
 case 80:
 if (y<19) {
 map[y][x]=false;
 y+=1;
 map[y][x]=true;
 }
 break;
 }
 }
 
 return 0;
 }
 
 void initGame(bool **map) {
 for (int i=0; i<20; i++) {
 for (int j=0; j<15; j++) {
 map[i][j]=false;
 }
 }
 map[0][0]=true;
 }
Говорит вот что:
 \Code Blocks\game\main.cpp||In function `int main()':|
 \Code Blocks\game\main.cpp|14|error: cannot convert `bool (*)[15]' to `bool**' for argument `1' to `void initGame(bool**)'
 Добавлено (11.01.2011, 13:49)---------------------------------------------
 Я понял, что можно сразу flase'ами заполнить, но всё же, почему не работает данный код?
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Вторник, 11 Января 2011, 13:41 | Сообщение # 36 | Тема: Мотиваторы, или демотиваторы? |  |   почетный гость Сейчас нет на сайте | Эм... А это не одно и то же?) 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Понедельник, 10 Января 2011, 18:06 | Сообщение # 37 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Kornival, понял =) Что у меня не так? Компилятор выдаёт ошибку:
 
 Code  int initGame(bool map[]);
 int main() {
 return 0;
 bool map[20][15];
 initGame(map);
 }
 int initGame(bool map[15][20]) {
 for (int i=0; i<20; i++) {
 for (int j=0; j<15; j++) {
 map[i][j]=false;
 }
 }
 map[0][0]=true;
 return 0;
 }
 
Вот ошибка:
 \Code Blocks\game\main.cpp||In function `int main()':|
 \Code Blocks\game\main.cpp|14|error: cannot convert `bool (*)[15]' to `bool*' for argument `1' to `int initGame(bool*)'
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Понедельник, 10 Января 2011, 17:39 | Сообщение # 38 | Тема: #if |  |   почетный гость Сейчас нет на сайте | ezhickovich, понятно, спасибо. Ну в общем, пока на этом зацикливаться думаю не стоит. Добавлено (10.01.2011, 17:36)---------------------------------------------
 А вот ещё вопрос - в каком порядке инициализируются функции? То есть у меня 3 функции, first, main, second (расположены в том же порядке, в котором написаны), как действует программа? То есть она ведь вначале инициализирует все функции, а лишь после выполняет функцию main или нет? Если да, то зачем прототипы?
 Добавлено (10.01.2011, 17:39)---------------------------------------------
 И зачем юзать статические переменные, если они всегда будут в памяти?
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Понедельник, 10 Января 2011, 16:16 | Сообщение # 39 | Тема: #if |  |   почетный гость Сейчас нет на сайте | ezhickovich, вот именно потому, что вы не поняли вопроса, вы и отправили меня на гугл =) Дело в том, что я не понимаю, каким образом <int> попадает в функцию? То есть я знаю такую операцию: 
 Code class my_type { operator<int a> {
 cout << a;
 }
 }
И то с <...> не проверял, так что не знаю, будет ли работать, но загвоздка ещё вот в чём - static_cast ведь не объект, так что к нему по идее такое нельзя прицепить. Или я ошибаюсь?
 
 
   |  |  |  |  | 
| 
| Hagrael | Дата: Понедельник, 10 Января 2011, 13:44 | Сообщение # 40 | Тема: #if |  |   почетный гость Сейчас нет на сайте | Ещё 2 вопроса появились - каким образом работает такой вызов функции? 
 Code static_cast<int>(var)То есть каким макаром туда int в угловых скобках попадает? о_О
 И ещё - в char может быть 1 байт, _getch возвращает char, и когда пишешь cout << _getch(), то выводится буква. Выходит, на одну букву расходуется 8 бит или как?
 
 
   |  |  |  |  |