Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 149, средняя оценка - 4.92
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
#1

решил изучить с++ - C++

27.03.2011, 17:19. Просмотров 18416. Ответов 179
Метки нет (Все метки)

всем привет, решил начать изучать с++, скачал MSVC++ 2010 express, какую литературу вы посоветуете для изучения данного языка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2011, 17:19     решил изучить с++
Посмотрите здесь:

Решил изучить новую низкоуровневую область в программировании, что посоветуете? - C++
Решил на досуге начинать изучать что - то новое для повышения так сказать образованности :) Конечно же есть более реалистичные...

Какие книги лучше всего изучить чтобы хорошо изучить с++ - C++
Хотелось бы открыть тему, либо если она уже есть подскажите ссылку. Хочу собрать список книг чтобы изучить профессионально с++, если...

Хочу изучить C++ - C++
Начал читать книгу С++ на начинающих можно сказать чайников. Не могу скомпилировать. Хотел бы найти знающего человека ля помощи и...

2 изучить работу с массивом - C++
Нам задали две лабораторные по С++ , с которыми у меня возникли трудности Вторая состоит из двух частей(задание прилоено ниже в лаб...

Cтоит ли после изучения Си++ изучить Си - C++
Подскажите, стоит ли после изучения Си++ изучить Си? Ведь в Си++ поддерживаются все сишные команды (например, alloc, realloc и т.д.) Но в...

Стоит ли изучить программирование в стиле С? - C++
Стоит ли изучит программирование в стиле С? В книге написано про строки в стиле С и настоятельно рекомендуется не использовать их при...

Изучить VC++ вдоль и поперек в наикратчайший срок - C++
Здравствуйте. Решил я таки в 30 лет после 10 летнего опыта администрирования вин, никс систем и программированию в вэбе хайлоад взяться...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.05.2011, 20:09     решил изучить с++ #161
stdcout, http://progs.biz/cpp/cpp/lessons/033.aspx
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
14.05.2011, 01:25     решил изучить с++ #162
Извиняюсь за то, что пишу сюда снова.
Ввожу текст в окно редактирования, ввожу имя файла в предназначенное для этого кнопку,
нажимаю кнопку "Сохранить".
В отдельных случаях сохраняет, в других вылетает непонятная ошибка. Это вроде как-то связано с размером введённого текста, хотя не уверен.

ОС Windows инициировала точку останова в wp10may.exe.

Это может быть вызвано повреждением кучи и указывает на ошибку в wp10may.exe или в одной из загруженных им DLL.

Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит wp10may.exe

Выведенное на экран окно содержит дополнительные данные для диагностики ошибки
Вот фрагмент:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if (!(iTemp = SendMessage(hwndFilename, EM_GETLINE, 0, (LPARAM) szFileName)))
                    MessageBox(hwnd, "Введите имя файла!", szAppName, MB_OK);
            else
            {
                if (IDYES == MessageBox(hwnd,
                        "Вы точно хотите сохранить файл под таким именем?",
                                szAppName, MB_YESNO))
                {
                    szFileName[iTemp] = '\0';
                    strcpy(szTemp, szAppName);
                    strcat(szTemp, "       Сохранение...");
                    SetWindowText(hwnd, szTemp);
                    SetCursor(LoadCursor(NULL, IDC_WAIT));
                    
                    file = fopen(szFileName, "w");
 
                    iLines = SendMessage(hwndEditor, EM_GETLINECOUNT, 0, 0);
                    iMaxLength = 0;
                                        /* Определяем максимальную длину
                                            строки в окне редактирования.    */
                    for (i = 0; i < iLines; ++i)
                    {
                        iTemp = SendMessage(hwndEditor, EM_LINELENGTH, i, 0);
                        if (iTemp > iMaxLength)
                            iMaxLength = iTemp;
                    }
                    szPerLine   = (char *) malloc(iMaxLength + 2);
                                        /* Записываем в файл все строки поочерёдно. */
                    for (i = 0; i < iLines; ++i)
                    {
                        iTemp = SendMessage(hwndEditor, EM_GETLINE, i, (LPARAM) szPerLine);
                                                /* На случай, если в конец строки
                                                    szPerLine не добавляется завершающий ноль,
                                                    думал, что проблема в этом. */
                        szPerLine[iTemp] = '\0'; 
                        fprintf(file, "%s", szPerLine);
                    }
                    free(szPerLine);
 
                    fclose(file);
 
                    SetWindowText(hwnd, szAppName);
                    SetCursor(LoadCursor(NULL, IDC_ARROW));
                }
            }
Добавлено через 3 минуты
Это всё в Visual Studio.
И после появления сообщения об ошибке, открывается файл dbgheap.c, и указывается последняя строчка в данной функции из того файла.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/***
*int _CrtIsValidHeapPointer() - verify pointer is from 'local' heap
*
*Purpose:
*       Verify pointer is not only a valid pointer but also that it is from
*       the 'local' heap. Pointers from another copy of the C runtime (even in the
*       same process) will be caught.
*
*Entry:
*       const void * pUserData     - pointer of interest
*
*Return:
*       TRUE - if valid and from local heap
*       FALSE otherwise
*
*******************************************************************************/
extern "C" _CRTIMP int __cdecl _CrtIsValidHeapPointer(
        const void * pUserData
        )
{
        if (!pUserData)
            return FALSE;
 
        if (!_CrtIsValidPointer(pHdr(pUserData), sizeof(_CrtMemBlockHeader), FALSE))
            return FALSE;
        /* Вот она. */
        return HeapValidate( _crtheap, 0, pHdr(pUserData) );
}
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.06.2011, 13:51     решил изучить с++ #163
У меня снова вопрос.
Как я слышал, среди стандартных функций нет функции наподобие getch() из conio.h. Но можно написать system("pause"). Хотелось бы узнать, как эта функция работает в Windows. Должна же быть среди API функций ф-ия подобная getch(), которая ожидает нажатия клавиши и возвращает её код.
И ещё. В Visual Studio 2010 Express если в подключённом к проекту хедере не добавить пустую строчку в конец, то при компиляции (или как это называется) выдаётся ошибка о том, что обнаружен непредвиденный конец файла в этом хедере. Если каретку перевести в конец файла и нажать ENTER, то компилируется нормально. Для чего это сделано, или это неполадка в самой студии (или что-то в этом роде)?
iama
1249 / 974 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
05.06.2011, 13:56     решил изучить с++ #164
stdcout, новый вопрос - новая тема.
diagon
Higher
1926 / 1192 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.06.2011, 14:10     решил изучить с++ #165
Цитата Сообщение от stdcout Посмотреть сообщение
У меня снова вопрос.
Как я слышал, среди стандартных функций нет функции наподобие getch() из conio.h. Но можно написать system("pause"). Хотелось бы узнать, как эта функция работает в Windows. Должна же быть среди API функций ф-ия подобная getch(), которая ожидает нажатия клавиши и возвращает её код.
И ещё. В Visual Studio 2010 Express если в подключённом к проекту хедере не добавить пустую строчку в конец, то при компиляции (или как это называется) выдаётся ошибка о том, что обнаружен непредвиденный конец файла в этом хедере. Если каретку перевести в конец файла и нажать ENTER, то компилируется нормально. Для чего это сделано, или это неполадка в самой студии (или что-то в этом роде)?
Открой cmd и вбей туда pause
Обязательно API? Есть std::cin.get(), к примеру.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2011, 16:47     решил изучить с++ #166
Цитата Сообщение от stdcout Посмотреть сообщение
если в подключённом к проекту хедере не добавить пустую строчку в конец...
Вообще-то, так должно быть во всех компиляторах, соответствующих стандарту.) Совершенно непонятное мне требование, поэтому оно игнорируется многими компиляторами.
ValeryLaptev
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
05.06.2011, 19:01     решил изучить с++ #167
Цитата Сообщение от Deviaphan Посмотреть сообщение
Вообще-то, так должно быть во всех компиляторах, соответствующих стандарту.) Совершенно непонятное мне требование, поэтому оно игнорируется многими компиляторами.
А где в стандарте подобное требование написано?
В Билдере иногда проскакивает как раз такая ошибка - типа обнаружен конец файла, причем именно в системном хедере.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.06.2011, 19:11     решил изучить с++ #168
Не помню где, но точно помню, что есть такое. Настолько удивлён был, что до сих пор помню.)
ValeryLaptev
Эксперт С++
1035 / 814 / 48
Регистрация: 30.04.2011
Сообщений: 1,658
05.06.2011, 19:23     решил изучить с++ #169
Цитата Сообщение от Deviaphan Посмотреть сообщение
Не помню где, но точно помню, что есть такое. Настолько удивлён был, что до сих пор помню.)
Ок, пороюсь. Спасибо.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
05.06.2011, 19:27     решил изучить с++ #170
Ну вот, например, C++ Standard ANSI ISO/IEC 14882:2003
Раздел 2 Lexical conventions
Параграф 2.1 Phases of translation
Пункт 2
Each instance of a new-line character and an immediately preceding backslash character is deleted,
splicing physical source lines to form logical source lines. If, as a result, a character sequence that
matches the syntax of a universal-character-name is produced, the behavior is undefined. If a source
file that is not empty does not end in a new-line character, or ends in a new-line character immediately
preceded by a backslash character, the behavior is undefined.
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.06.2011, 22:36     решил изучить с++ #171
diagon, да API, потому что на C нужно, а не C++.
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
07.06.2011, 17:45     решил изучить с++ #172
Никто не знает, примерно как можно реализовать функцию getch()? Ведь реализована же она как-то в conio.h. Или там не через C?
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
07.06.2011, 18:02     решил изучить с++ #173
Если приложение консольное, то в Windows можно использовать _getch() из conio.h. На других платформах это может быть реализовано по другому. Для GUI приложения аналога быть не может, там совсем другая модель исполнения.
diagon
Higher
1926 / 1192 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.06.2011, 18:04     решил изучить с++ #174
Код не кроссплатформенный получится.
C
1
scanf("*");
При нажатии на ентер окошко захлопнется. Чем не вариант?
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
07.06.2011, 18:15     решил изучить с++ #175
Мне нужна была функция, которая ждёт нажатия любой клавиши и возвращает её код.
Это не настолько важно, просто, хотелось попробовать реализовать или узнать, как могли её реализовать авторы библиотеки conio.h.
diagon
Higher
1926 / 1192 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.06.2011, 18:31     решил изучить с++ #176
Можете скачать исходники ncurses, там реализована getch() для линукса. А исходники conio.h вы врядли найдете=)
Вроде еще можно ассемблерной вставкой сделать, здесь есть что-то похожее.
Bekcha
Сообщений: n/a
02.07.2011, 15:22     решил изучить с++ #177
Olejeg85, вы слишком наивны, если думаете, что с++ можно изучить за месяц. Там слишком много сложных и тонких мест. Это не Basic, который месяц и изучил почти полностью. С++- язык для профессионалов. Например, я вожусь с консольными приложениями уже почти полтора года и ещё есть, что изучать. А если вам необходимо освоить с++ на хорошем уровне(основы), то я готов вам подсобить. Могу абсолютно бесплатно научить вас осоновам с++. Если предложение вас заинтересовало, то пишите на dr.andrey-kalinin2011@yandex.ru(особенно, если вы школьник).
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
29.08.2011, 14:56     решил изучить с++ #178
Никто не знает, примерно как можно реализовать функцию getch()? Ведь реализована же она как-то в conio.h. Или там не через C?
Сам спросил - сам отвечу. В книге Харта прочитал про функции для работы с консолью. Вот один из вариантов реализации getch() из <conio.h> для Windows.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int MyGetch()
{
    char   buffer[1] = { 0 };
    HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
 
    if (hIn != INVALID_HANDLE_VALUE)
    {
        DWORD  dwNumber;
        DWORD  dwOldMode;
 
        GetConsoleMode(hIn, &dwOldMode);
        SetConsoleMode(hIn, ENABLE_PROCESSED_INPUT);
        ReadConsole(hIn, buffer, 1L, &dwNumber, NULL);
        SetConsoleMode(hIn, dwOldMode);
    }
    return ((int) (unsigned char) buffer[0]);
}
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
29.08.2011, 15:37     решил изучить с++ #179
stdcout, так а зачем вам?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2011, 16:22     решил изучить с++
Еще ссылки по теме:

Какую программу нужно что бы изучить С++ - C++
Мне друг сказал что это хороший форум Так вот хочу спросить Какую программу нужно что бы изучить С++ Помогите а то уже второй день...

За какое время можно досканально изучить C++ - C++
Народ здравствуйте хотелось бы задать вам вопрос &quot;За какое время можно досканально изучить C++&quot; имея способности и уделяя 20-30 часов в...

Сравнить 2 файла по содержанию. Что следует изучить? - C++
Хочу решить следующую задачу: удалить дубликаты файлов из указанной директории, используя структуру win32_find_data. Имена файлов разные. ...

Ребят! Что полезней изучить VBA или С++ - C++
Хочу продвинуться, подскажите пожалуйста счего начать! Что будет полезней, и где найти информацию?

Изучить функцию для работы со строками (strcpy) - C++
помогите пожалуйста) Изучить функцию для работы со строками. Написать свою функцию, выполняющую ту же работу. Вызвать из функции main ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
29.08.2011, 16:22     решил изучить с++ #180
OstapBender,
stdcout, так а зачем вам?
да так, незачем. просто, до того, как узнал о функция WinAPI для работы с консолью, реализация этой функции казалась загадочной.
Yandex
Объявления
29.08.2011, 16:22     решил изучить с++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru