Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
0 / 0 / 0
Регистрация: 02.11.2025
Сообщений: 1

Подводные камни

02.11.2025, 15:02. Показов 7588. Ответов 87

Студворк — интернет-сервис помощи студентам
Какие основные ошибки совершают начинающие при изучении C++ и как их избежать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2025, 15:02
Ответы с готовыми решениями:

Подводные камни клиент-серверного приложения
Здравствуйте дорогие Хорошую статью дал мне Vitaly1981 http://citforum.ru/book/cook/winsock.shtml ...

Подводные камни в стеке, в очереди, в списке
какие могут быть ошибки в структурах данных? например, вот в очереди начало может догнать конец....

Какие подводные камни могут быть, при хранении в контейнере элемента типа void*?
Привет читателям! Какие подводные камни могут быть, при хранении в контейнере элемента типа void*?...

87
фрилансер
 Аватар для Алексей1153
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,073
09.11.2025, 16:52
Студворк — интернет-сервис помощи студентам
Royal_X, так же будет, поскольку elision
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6205 / 2906 / 1043
Регистрация: 01.06.2021
Сообщений: 10,696
09.11.2025, 16:55
Цитата Сообщение от Алексей1153 Посмотреть сообщение
так же будет, поскольку elision
то, что и так работает, это понятно. Но для эстетики нужно добавить )

и в ide подсказка будет правильной при наведении мыши




вернее, ide в обоих случаях правильно подсказывает, но я про то, что если использовать правильный литерал, то потом можно и правильно ориентироваться в ide
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6205 / 2906 / 1043
Регистрация: 01.06.2021
Сообщений: 10,696
09.11.2025, 17:20
Лучший ответ Сообщение было отмечено Наталья8 как решение

Решение

Цитата Сообщение от Наталья8 Посмотреть сообщение
Здесь на единичку ошибёшься, ни чё работать не будет.
Цитата Сообщение от Наталья8 Посмотреть сообщение
C++
1
2
3
FILE *file_for_save = _wfopen(l_szSrcFile, L"w+b");
                    if (file_ptr == NULL) {
                        printf("failed to open file for reading\n");
ты вообще тот указатель проверяешь?

Цитата Сообщение от Наталья8 Посмотреть сообщение
C++
1
wcscpy(tmp_name, wcsrchr(l_szSrcFile, '\\'));
а если \ не будет, то вроде вернет NULL, что вызовет потом бах

Цитата Сообщение от Наталья8 Посмотреть сообщение
C++
1
*(wcsrchr(l_szSrcFile, '\\')) = '\0';
тоже самое, если wcsrchr вернет NULL, это приведет к записи по нулевому адресу

***

Чем ничтожнее тема, тем длиннее обсуждение.
0
 Аватар для Наталья8
520 / 374 / 66
Регистрация: 09.03.2016
Сообщений: 3,981
09.11.2025, 20:10
Цитата Сообщение от Royal_X Посмотреть сообщение
FILE *file_for_save = _wfopen(l_szSrcFile, L"w+b");
                    if (file_ptr == NULL) {
                        printf("failed to open file for reading\n");
Здесь ошибка у меня. А всё остальное правильно.
Ещё вот так пишу--
C++
1
swprintf(wcsrchr(l_szSrcFile, '\\'),L"%s", L"\\literal.txt");// Не проверял.
На string тоже умею... Начинал на них. Но так мне кажеться конкретнее. Безглючнее.
(Это ищет справа первый слеш. И туда пишет литерал.)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wchar_t end_ln[8]{};
wcscpy(end_ln, wcsrchr(name, ')'));
//---------------------------------
//wprintf(L"%s", end_ln); getchar();
 
while (true) {
    // Файлы именуються всегда на единицу больше, чем файл с максимальным номером.
    while (_waccess(PathUtf16, 0) == 0)
    {
        ++real_cnt;
        swprintf(wcsrchr(PathUtf16, '\\') + 8, L"%d%s", ++number, end_ln);
    } // Вылет из цикла - файла с такой цифрой нет.
    if (real_cnt == cnt)break;
    swprintf(wcsrchr(PathUtf16, '\\') + 8, L"%d%s", ++number, end_ln);
}
Самая короткая подстановка нового файла с номером. Самая малострочная.
Я такое по всякому писал. И на string тоже...
Эта карусель везде... Несколько лет... И работает..

Добавлено через 2 минуты
Молодец вникнул.
А других кнопочек у меня нету. Не положено. Не заработал.

Добавлено через 5 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
тоже самое, если wcsrchr вернет NULL
До сих пор не возвращала... Может завтра...
(Мама потом отдаст...)
Если вернёт нуль, компьютер в охапку, и на мусорку.
0
Just Do It!
 Аватар для XLAT
4208 / 2665 / 655
Регистрация: 23.09.2014
Сообщений: 9,075
Записей в блоге: 3
09.11.2025, 20:23
Цитата Сообщение от Royal_X Посмотреть сообщение
Чем ничтожнее тема, тем длиннее обсуждение.
не фик тут обсуждать - делай как я сказал! - и усё.

а если не делаешь, то тогда ты сам себе доктор))
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
09.11.2025, 21:46
Цитата Сообщение от Наталья8 Посмотреть сообщение
wcsrchr(PathUtf16, '\\')
Вот так привыкнет пихать шокудапопало.
А потом такой, wcsrchr(PathUtf16, 'Ё') - упс-с-с.
Ну а предупреждения, да черт с ними, пищит себе что-то там, пусть пищит)

"И так сойдет!"
Это не Наталья, а ходячий джокер.
0
 Аватар для Наталья8
520 / 374 / 66
Регистрация: 09.03.2016
Сообщений: 3,981
10.11.2025, 00:37
Цитата Сообщение от SmallEvil Посмотреть сообщение
А потом такой, wcsrchr(PathUtf16, 'Ё') - упс-с-с.
Какое Ё?
ты о чём?
Функция wcsrchr( не нравиться?
Я ни разу ни какого Ё не искал... Это слеш как бы.... Один символ...
Ни с каким ЙО не работаю.

Последняя слеш находиться в любом тексте. И utf8 тоже. Имею некоторый опыт.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (*(strrchr(buf_for_txt, '\r') + 2) != '\0') {// Если в конце массива не стоит \r\n
        strcat(buf_for_txt, "\r\n"); cur += 2;// Подставить и увеличить размер
    }
    unsigned short size = cur;
 
fwrite(buf_for_txt, sizeof(char), cur,// <-- Гнать весь файл
    file_ptr);
    // ---------------------------- Поставим метку в конец файла
 
fwrite("#end_of_txt\r\n", sizeof(char), strlen("#end_of_txt\r\n"),// 
        file_ptr);
    size += strlen("#end_of_txt\r\n");
    
    fseek(file_ptr, 43, SEEK_SET);// Смещение и размер. Пишем.
fwrite(&cur_n, sizeof(cur_n), 1, file_ptr);
fwrite(&size, sizeof(size), 1, file_ptr);
На ещё почитай...
0
 Аватар для Наталья8
520 / 374 / 66
Регистрация: 09.03.2016
Сообщений: 3,981
10.11.2025, 15:14
Конечно велосипед... Позор на мои седые голова.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2025, 15:14
Помогаю со студенческими работами здесь

Подводные камни realloc
Всем привет. Пишу структуру данных, которая при определенных обстоятельствах может перераспределять...

Использование long вместо long int. Возможны ли подводные камни?
Добрый день. Моя цель - писать кроссплатформенный C++ код, поэтому хочу отказаться от типа int...

Подводные камни обмена объектами между программой и DLL
Доброго времени суток. Есть программа, разделенная на основной модуль и DLL Для обмена...

Подводные камни использования библиотеки Qt в Visual Studio
С одной стороны, глупый вопрос: библиотека есть библиотека, берёшь и пользуешь. С другой стороны, я...

Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза.
Имеется N камней веса А1,А2,...,АN. Необходимо разбить их на две кучи таким образом, чтобы веса...


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

Или воспользуйтесь поиском по форуму:
88
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru