Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041

Не могу ввести в файл строку во время чтения, указатель позиции в файле

21.12.2013, 21:30. Показов 884. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
читаю из файла данные в структуру, и сравниваю их с str и str2, при совпадении надо будет добавить другую структуру в файл. Решил сделать так - читаю строки в файле, при совпадении в if() записываю текущую строку в string, а на её место добавляю другую - заданную с клавы(в данном куске кода я её не выкладывал дабы не загоромождать), после чего последовательно сохраняю строку и на её место пишу предыдущую...

считываю до места нормально, потом пытаюсь записать что-либо в файл, но не получается...не очень понимаю как правильно сделать это всё с помощью указателей позиции в файле, но знаний не хватает...точнее tellg() и tellp() ведут себя не очень понятно...Вообщем прошу помочь знающих людей...

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
void addWatch(watch**a,int counter)
{
string str;
string str2;
 
fstream in2("file2.txt");
 
cout<<"Please enter company name: ";
cin>>str;
cout<<"Please enter company nation: ";
cin>>str2;
 
bool flag=true;
int i=0;
    while (!in2.eof())
    {
    watch *b=new watch;
        getline(in2,b->name,' ');
        getline(in2,b->company,' ');
        getline(in2,b->nation,' ');
        getline(in2,b->old,' ');
        getline(in2,b->price,'\n');
 
        if (!strcmp(str.c_str(),b->company.c_str())&&!strcmp(str2.c_str(),b->nation.c_str()))
        {
        in2<<"TEST  TEST    TEST    TEST    TEST\n";    // вот здесь как-то надо что-то сделать 
        break;
        }
    i++;
    delete b;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2013, 21:30
Ответы с готовыми решениями:

Ввести строку, ввести число N. Вывести результат: символ из позиции N в строке, сделать с использованием команды xlat
Помогите пожалуйста. Прочитал уже кучу статей по xlat и просмотрел много примеров, но ведь для того чтобы сделать эту программу нужно чтобы...

При работе fstream указатель типа pos_type (позиции в файле) не работает
Разбираю код с сайта: http://valera.asf.ru/cpp/book/c20.html Компилятор Билдер-6 ругается. когда я создаю консольное приложение и...

Ввести строку и образец поиска. Найти позиции в строке, совпадающие с образцом и вывести их
Ввести строку и образец поиска. Найти позиции в строке, совпадающие с образцом и вывести их.

9
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
21.12.2013, 21:34  [ТС]
прикрепляю всю прогу
Вложения
Тип файла: rar freeNatalSol.rar (208.4 Кб, 5 просмотров)
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.12.2013, 21:50
Со string в полях структуры, а значит и с текстовыми методами записи полей структуры в файл, замена структуры в файле не получится.
1
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
21.12.2013, 22:01  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Со string в полях структуры, а значит и с текстовыми методами записи полей структуры в файл, замена структуры в файле не получится.
я считываю в структуру только в начале, чтобы найти нужную строку по 2 введённым параметрам, а дальше я могу спокойно читать/записывать по строкам, разве нет..
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.12.2013, 22:15
Цитата Сообщение от dzrkot Посмотреть сообщение
а дальше я могу спокойно читать/записывать по строкам, разве нет..
Читать - да. А записывать... Если только новая строка будет совпадать по длине с той, которую хотите переписать. В файле же строк, как это выглядит в блокноте, нет, есть непрерывный ряд кодов символов. Перезапись в файле была бы возможна, если, вместо string, полями были бы массивы char. Тогда можно было бы использовать бинарную запись/чтение, и перезаписывать стукрутры в файле (размер структур - фиксированный).
1
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
21.12.2013, 22:24  [ТС]
если я всё считаю из файла во временный массив структур, зная номер строки после которой нужно добавить новую структуру - добавлю её, а потом перепишу всё это обратно в файл
по идее прокатит, но переписывать так лень..(
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.12.2013, 22:44
Цитата Сообщение от dzrkot Посмотреть сообщение
но переписывать так лень..(
1) Отказаться от string. 2) Сереализация (может быть). Не занимался, поэтому точно сказать не могу: поможет это здесь или нет.
1
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
21.12.2013, 23:30  [ТС]
...удалить...сам спросил, сам ответил)))

Добавлено через 33 минуты
Да, решил при помощи доп массива...жестоко конечно))
0
21.12.2013, 23:41

Не по теме:

Цитата Сообщение от dzrkot Посмотреть сообщение
сам спросил, сам ответил)))
А я на что время потратил?

0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
22.12.2013, 00:03  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


А я на что время потратил?

Не по теме:

Да не...)) я в том смысле, что я там задал вопрос, потом через минуту сообразил что я знаю ответ, и написал что "сам спросил сам ответил)"



фуф, задачу решил наконец)))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2013, 00:03
Помогаю со студенческими работами здесь

Строка: Вывести нечетные символы во 2 строку экрана с 5-й позиции, а четные в 23-ю строку с 5-й позиции.
Помогите пожалуйста решить задачу на экзамен. Дана строка символов. Вывести нечетные символы во 2 строку экрана с 5-й позиции, а четные...

Как заблокировать файл на время чтения/записи?
Как сделать такое? Чтоб другие программы не могли в этот момент писать в этот файл?

Ввести файл . Все нули в файле заменить единицами, а единицы нулями. Файл вывести до и после преобразования.
Ввести файл . Все нули в файле заменить единицами, а единицы нулями. Файл вывести до и после преобразования. Решение нужно как можно...

Не могу ввести строку
вот код, ввожу строку а первый симво не mmm, а признак конца строки, потом еще чото и только потом символы которые ввел masm .model...

Ввести файл. Каждый четный элемент в файле заменить результатом его целочисленного деления на 5. Файл вывести до и после преобразования
Доброго времени суток, форумчане! Код написал. Не работает. выдает один и тот же файл до преобразования и после. в чем моя ошибка?...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru