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

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

02.11.2025, 15:02. Показов 8128. Ответов 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
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
09.11.2025, 16:52
Студворк — интернет-сервис помощи студентам
Royal_X, так же будет, поскольку elision
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6302 / 3024 / 1053
Регистрация: 01.06.2021
Сообщений: 11,478
09.11.2025, 16:55
Цитата Сообщение от Алексей1153 Посмотреть сообщение
так же будет, поскольку elision
то, что и так работает, это понятно. Но для эстетики нужно добавить )

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




вернее, ide в обоих случаях правильно подсказывает, но я про то, что если использовать правильный литерал, то потом можно и правильно ориентироваться в ide
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6302 / 3024 / 1053
Регистрация: 01.06.2021
Сообщений: 11,478
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
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
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
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 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
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
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
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
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
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru