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

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

02.11.2025, 15:02. Показов 8363. Ответов 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
6500 / 5731 / 1133
Регистрация: 11.10.2019
Сообщений: 15,335
09.11.2025, 16:52
Студворк — интернет-сервис помощи студентам
Royal_X, так же будет, поскольку elision
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
09.11.2025, 16:55
Цитата Сообщение от Алексей1153 Посмотреть сообщение
так же будет, поскольку elision
то, что и так работает, это понятно. Но для эстетики нужно добавить )

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




вернее, ide в обоих случаях правильно подсказывает, но я про то, что если использовать правильный литерал, то потом можно и правильно ориентироваться в ide
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
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
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,286
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
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 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
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,286
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
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,286
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
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru