1 / 1 / 0
Регистрация: 04.06.2019
Сообщений: 39
|
||||||
1 | ||||||
Работа с библиотекой Srting29.10.2019, 22:39. Показов 3584. Ответов 29
Здравствуйте! Вообщем, я работал со строками, которые обьявлял просто, через чар, сел на библиотеку String и перестало работать множество функций для работы с файлами. Помогите пожалуйста
П.С. подчеркивает 10 строку букву а
0
|
29.10.2019, 22:39 | |
Ответы с готовыми решениями:
29
Поля to Srting Нужна летиратура, в которой бы описывались работа с событиями, работа с элементами управления Работа - проведение обучающих семинаров по C#. Работа по выходным дням ( сб-вс - 32 часа). От 30 000р. Работа формы в фоне, вне фокуса (работа с раскладкой клавиатуры) |
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
||||||
29.10.2019, 22:58 | 2 | |||||
перед строкой 10 вставь строку
0
|
1 / 1 / 0
Регистрация: 04.06.2019
Сообщений: 39
|
|
29.10.2019, 23:03 [ТС] | 3 |
Не помогло, не в том проблема, так как даже если вместо 255 поставить a.size() в фгетсе. Мистика
0
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
||||||
29.10.2019, 23:06 | 4 | |||||
chueveve, ну да
0
|
1 / 1 / 0
Регистрация: 04.06.2019
Сообщений: 39
|
|
29.10.2019, 23:10 [ТС] | 5 |
Считало, но первый символ, а не строку
Добавлено через 2 минуты Спасибо, что пытаетесь помочь, Считало, но первый символ, а не строку
0
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
|
29.10.2019, 23:11 | 6 |
chueveve, ну вот в этом я не подскажу. Попробуй класс std::ifstream
0
|
1 / 1 / 0
Регистрация: 04.06.2019
Сообщений: 39
|
|
29.10.2019, 23:17 [ТС] | 7 |
Я с ней не работал, вы знаете функцию на подобии фгетс? Я ее потом изучу
0
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
|
29.10.2019, 23:29 | 8 |
chueveve, я не работаю ни с FILE* , ни с std::ifstream , у меня WinAPI, MFC и Qt Поэтому я вот так с ходу ничего не смогу подсказать по стандартным функциям, но зато в гугле можно найти примеры, и выглядят они несложно https://metanit.com/cpp/tutorial/8.3.php
1
|
1 / 1 / 0
Регистрация: 04.06.2019
Сообщений: 39
|
|
29.10.2019, 23:33 [ТС] | 9 |
Спасибо!
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
30.10.2019, 09:37 | 10 | |||||
Сообщение было отмечено chueveve как решение
Решение
Как-то так
1
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
|
30.10.2019, 09:44 | 11 |
oleg-m1973, если размер правильно выделять, то нет разницы, это такой же массив char
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.10.2019, 09:50 | 12 |
Нет, не такой же. Как минимум, у него там есть ещё переменная size, можешь на этом довольно серьёзно просрать в дальнейшем.
Там, где нужен массив символов, используй char[.....], std::string нифига под это не заточен. Хотя, стоит добавить, что мне это тоже не нравится.
0
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
|
30.10.2019, 10:29 | 13 |
oleg-m1973, повторю, std::string - это оболочка для массива char. Плюс всегда гарантируется, что после этого массива есть char со значением '\0'. Плюсы - динамика инкапсулирована, это защита от утечек и удобство при использовании вообще.
задание размера: resize/assign/push_back ... получение размера: size() получение константного указателя на начало буфера: c_str() произвольный доступ - iterator или оператор [] s[6] - неконстантная ссылка на элемент с индексом 6 &s[6] - неконстантный указатель на элемент с индексом 6 Если не нужен обязательный завершающий zt, то можно воспользоваться std::vector<char> так что не надо утверждений, что это не одно и то же Это оболочка, пользуйся методами
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.10.2019, 10:35 | 14 |
И я тебе ещё раз повторю - использовать std::string и std::vector в качестве буфера для сишных функций - это очень плохой стиль. И лучше сразу тупо запомнить, что этого делать нельзя.
0
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
|
30.10.2019, 10:42 | 15 |
ничем не обоснованное утверждение. Ты же пользуешься new/delete и не боишься, тут всё точно так же, только внутри класса. Я пользуюсь ими уже больше 10 лет и не знаю проблем. Потому что понимаю, как они устроены
льзя Даже нужно. Будет экономия времени, нервов и раз в 100 меньше ошибок
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.10.2019, 11:04 | 16 |
Если бы ты понимал как они устроены, то ты бы знал, что это классы со своим внутреним представлением и своей реализацией.
Когда ты напрямую пишешь в них, пользуясь своим "пониманием", то тебе, как минимум, нужен будет ещё дополнительный код, чтобы объект остался в консистентном состоянии. Это источник ошибок, довольно серьёзный. И есть ещё вопрос производительности - ты можешь создать std::vector нужного размера, не заполняя его нулями? И гарантируешь ли, что resize на увеличение не заполнит новое место нулями?
0
|
фрилансер
5832 / 5349 / 1100
Регистрация: 11.10.2019
Сообщений: 14,301
|
|
30.10.2019, 11:14 | 17 |
std::vector v(len);//без инициализации
std::vector v(len,val);//с инициализацией resize(newlen) - увеличение без инициализации resize(newlen,val) - увеличение с инициализацией только зачем об этом думать, это ни на что не влияет в плане производительности. выделяешь нужный размер в контейнере и спокойно пишешь туда напрямую. Они для этого предназначены. Не понимаю причин твоей паники.
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
30.10.2019, 11:23 | 18 | |||||
Покажи, где сказано, что это увеличение без инициализации не заполняет нулями.
Вообще, дополнительный проход по массиву влияет - была сложность O(N), стала O(2N). (На этом основаны многие демонстрации того, что Си быстрее, чем С++)
0
|
1 / 1 / 0
Регистрация: 04.06.2019
Сообщений: 39
|
|
30.10.2019, 15:19 [ТС] | 19 |
oleg-m1973, это похоже больше на правду но, есть ошибки в открытии файла и соответственно в 6й строке. Библиотеку подключит истрим
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.10.2019, 15:22 | 20 |
0
|
30.10.2019, 15:22 | |
30.10.2019, 15:22 | |
Помогаю со студенческими работами здесь
20
Количество подведенного и отведенного тепла, работа сжатия, работа расширения Работа с Меню. Сохранение, печать, создать новый. Работа с рисованием Работа с файловой системой (системное название некоторых папок и работа со скрытыми документами) Нужна книга, где рассматриваются работа с прерываниями, указатели, работа с памятью, ассемблерные вставки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |