Результаты поиска
| |
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 бит или как?
|
|
| |
|