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

If работа с файлом

24.12.2014, 12:01. Показов 1916. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Часть кода в которой я записываю строки в файл,по параметрам которые совпадают,как записать те строки в которых нет совпадение?

как проверить есть ли строка в файле?


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
while (readStr(fin1, vstr1))
    {
        while (readStr(fin2, vstr2))
        {
            if (vstr1[3] == vstr2[3] && vstr1[4] == vstr2[4] && vstr1[5] == vstr2[5] )
            {
                printNewStr(vstr1, vstr2);
                cout<<'.';
                vstr2.clear();
 
            }
 
            else
             {
                //cout<<'/';
                vstr2.clear();
                continue;
            }
 
 
               }
 
        fin2.clear();
 
fin2.seekg(0);
    vstr1.clear();
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2014, 12:01
Ответы с готовыми решениями:

Работа с файлом
Помогите доделать программу. Необходимо создать файл структуры: фамилия абонентов, год установки телефона, номер телефона. Программу...

работа с файлом)
Помогите пжлст написать прогу.Задание: Найти среднее количество знаков препинания в абзаце.Текст считывать с файла. Добавлено через...

Работа с файлом
Помогите пожалуйста. Надо подсчитать в файле количество букв &quot;A&quot; и записать это число в конец файла.

33
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
24.12.2014, 17:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от lss Посмотреть сообщение
На вскидку не нужно, ты строки не видел. В конце строки, например, там нет ;, и где твой код тогда остановится, при чтении первой строки?. Что там можно упростить - это сразу считать 6 строк.
Есть массив в виде табличных данных, как его поделить на отдельные элементы для дальнейшей работы?

и остановится он на первом же '\n'.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
24.12.2014, 17:15
Цитата Сообщение от ebywku Посмотреть сообщение
как записать те строки в которых нет совпадение?
В каких-то полях нет совпадений? Или если во всех полях нет совпадений?

Добавлено через 57 секунд
Цитата Сообщение от dzrkot Посмотреть сообщение
и остановится он на первом же '\n'.
С какого испугу, если у тебя он читает до ;? До '\n' будет читаться, если разделитель не указан ('\n' стоит по умолчанию).
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
24.12.2014, 17:16
Цитата Сообщение от lss Посмотреть сообщение
С какого испугу, если он читает до ;?
мб с такого=)
http://www.cplusplus.com/refer... g/getline/

Extracts characters from is and stores them into str until the delimitation character delim is found (or the newline character, '\n', for (2)).
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
24.12.2014, 17:22
специально заморочился.
Остановится на след ';' или eof
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
24.12.2014, 17:34
Цитата Сообщение от lss Посмотреть сообщение
Вопросы?
у вас считывается вся строка целиком...

Добавлено через 4 минуты
Цитата Сообщение от dzrkot Посмотреть сообщение
(or the newline character, '\n', for (2)).
относится к istream& getline (istream& is, string& str);
тем не менее файл всёравно прочитается, другое дело что записано в vstr уже будет не то что надо, но как бы тогда я вообще бы делал иначе, читал всё, потом отделял мух от котлет.Но у нас же в условии сказано что разделитель ';'
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
24.12.2014, 17:48
Думаю, что за хрень? Неправильный код написал.
В файле:
asdf;sdfg;sdfg
wwww;eeeee
ddd;ggg
Код и результат третьего чтения:
C++
1
2
3
4
    char buff[50];
    ifstream file("1.txt");
    while (file.getline(buff, 50, ';'))
        cout << buff;
Никакой остановки на '\n' не происходит. Считывается и следующая строка, пока не встретится ';'. Т.е., результат третьего чтения: sdfg\nwwww.
Миниатюры
If работа с файлом  
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
24.12.2014, 17:53
Цитата Сообщение от lss Посмотреть сообщение
Никакой остановки на '\n' не происходит. Считывается и следующая строка, пока не встретится ';'. Т.е., результат третьего чтения: sdfg\nwwww.
да я уже давно проверил и я согласен что не прав) тем не менее никакого ужаса в этом нет) вам по-моему лишь бы придраться - не первый раз за вами замечаю)
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
24.12.2014, 17:54
Цитата Сообщение от dzrkot Посмотреть сообщение
относится к istream& getline (istream& is, string& str);
Тоже самое и с std::getline(). Разницы никакой нет.
Миниатюры
If работа с файлом  
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
24.12.2014, 17:58
Цитата Сообщение от lss Посмотреть сообщение
Давай на личности не будем переходить. Я понимаю, что неприятно оказаться неправым, но ткни носом, где ты до этого написал, что был не прав. Может я пропустил?
вообще-то ещё вот тут)
Цитата Сообщение от dzrkot Посмотреть сообщение
(or the newline character, '\n', for (2)).
относится к istream& getline (istream& is, string& str);
но ок я поясню, я имел ввиду что вот в моей цитате
Цитата Сообщение от dzrkot Посмотреть сообщение
(or the newline character, '\n', for (2)).
(2) означает, что это относится к 2ому типу конструктора, о чём я написал
Цитата Сообщение от lss Посмотреть сообщение
относится к istream& getline (istream& is, string& str);
следовательно я не прав, по-меому всё было понятно - если нет, то пардон)

Я никого не стремлюсь тут оскорбить и т.п. ...) В условиях задачи сказано, что там есть разделитель, я написал вариант для этого разделителя, тут появились вы и стали говорить что я не прав, и что если там не будет ';', то всё - капец.... но по условию оно там есть...кароче я пошёл)
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
24.12.2014, 22:00

Не по теме:

Цитата Сообщение от dzrkot Посмотреть сообщение
вообще-то ещё вот тут)
Тут вижу цитату про что-то. Где ты написал, что был не прав? (что проверил, убедился и т.д.)?



Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от dzrkot Посмотреть сообщение
другое дело что записано в vstr уже будет не то что надо
Разве что вот это можно понять, что не прав?


Цитата Сообщение от dzrkot Посмотреть сообщение
Но у нас же в условии сказано что разделитель ';'
Там ещй строки показаны, где в конце строки нет ';'.
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 22:11  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
[OFF]
В каких-то полях нет совпадений? Или если во всех полях нет совпадений?


ну грубо говоря нужно внести в отдельный файл те строки,которые не попали в первый
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
24.12.2014, 22:20
Цитата Сообщение от ebywku Посмотреть сообщение
ну грубо говоря нужно внести в отдельный файл те строки,которые не попали в первый
Строки из какого файла? Из первого? Для которых, во втором файле, не были найдены строки с одинаковыми полями?
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 22:25  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Строки из какого файла? Из первого? Для которых, во втором файле, не были найдены строки с одинаковыми полями?


не совсем,из первого и второго файла,для которых не были найдены строки с одинаковыми полями
пример:
Два файла - 200 строк(по 100 в каждом),совпадений,допустим 120 строк,остальные 80 надо записать в другой файл
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
25.12.2014, 17:40
Объявить переменную типа bool со значением false. Если найдены совпадения, то присваивать ей значение true. Перед удаленем строки, считанной из первого файла, проверять эту переменную, если false, то записывать эту строку в отдельный файл. Для номеров строк из второго файла объявить вектор под int. Если найдены совпадения, то записывать в него номер строки из второго файла, в которой были найдены совпадения. После всего, записать в отдельный файл строки из второго файла, с номерами, которых нет в этом векторе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2014, 17:40

Работа с файлом
В двумерном массиве подсчитать сумму элементов в каждом столбце и вывести ответы в файл! Пример 1 2 3 4 5 6 7 8 9 в файл...

Работа с файлом
Имеется текст документа, состоящий из нескольких параграфов. Каждый параграф начинается с заголовка и отделен пустой строкой от предыдущего...

Работа с файлом
Добрый вечер. Нужно подсчитать количество точек, попадающих в круг радиуса 4 с центром в начале координат. На паскале такую прогу уже делал...

Работа с файлом
Помогите если не затруднит. Есть текстовый файл(примерно такой): A asdada qweqw A ijiijij nvbjk rtrt A

Работа с файлом
ofstream file1(&quot;C:\\Users\\User\\Desktop\\jewelry.txt&quot;); Ошибка 6 error C2146: синтаксическая ошибка: отсутствие &quot;;&quot;...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
BitTorrent (версия 7.11 English) и Меню Настройки
russiannick 15.11.2026
Пункты, отвечающие за отключение обновлений в BitTorrent версии 7. 11 (английской) Options Preferences General Language
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент". В данной функции нет апострофов,. . .
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru