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

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

21.12.2013, 21:30. Показов 906. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru