2014-12-24 2 views
0

Мне удалось сохранить все обновленные контакты в TXT-файле. Теперь мой следующий шаг - загрузить эти контакты в список ссылок (как вы знаете, когда консоль закрыта, список ссылок будет уничтожен, но контакты все равно будут существовать в TXT-файле, поэтому мне нужно сделать следующее: когда я запускаю программу в следующий раз, он должен загружать контакты, сохраненные из файла txt, в списки ссылок). В частности, я хочу спросить, есть ли какой-либо простой способ, чтобы я мог пропустить эти «Имя:» «Фамилия:» «Адрес:« «Номер телефона:» части для сохранения в строках? PS Я знаю, как загружать вещи из txt-файла, но я не знаю, как пропустить некоторые из них. Я буду использовать getline() для загрузки. Я знаю, что один из основных способов сделать это состоит в том, что я не должен выводить эти нерелевантные части в txt-файл, но это возможно без него, потому что я также хочу, чтобы файл txt был хорошо детализирован, а не в необработанном виде. http://i.imgur.com/1IG3FeN.pngПропуск определенных вещей при чтении txt-файла в C++

+0

Вы должны уточнить свой вопрос с примерами того, как эти данные и как они предположительно ... – Samer

+0

Вместо того, чтобы записывать необработанные данные контакта в каждой строке, почему вы не можете писать каждый контакт как XML или JSON или некоторые сериализованные в одной строке? так что ваша загрузочная часть становится намного проще ... –

+0

@Samer Я сделал все возможное, чтобы прояснить вопрос и на самом деле с примером. – Titanz

ответ

1

После getline у ​​вас есть все, что вы можете найти в индексе «:», используя метод find() или indexOf() из класса «string». Затем сделайте substr с этим индексом до конца. Ниже приведен пример обеих функций. http://www.cplusplus.com/reference/string/string/substr/

+0

Мне нравится это решение, а также нужно обрезать содержимое, чтобы избежать пробелов и вкладок (кажется, что на изображении есть пробелы и вкладки). –

+0

К сожалению, стандартная строковая библиотека C++ без хорошей отделки. В java или php по умолчанию, но здесь вы должны написать свой собственный или использовать библиотеку boost. http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring – Kuba

+0

да. Мы можем написать триммерные функции, подобные этому http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring –

0

Поскольку текст в таком удобном формате для синтаксического анализа, и это то же самое, вы можете либо прочитать целую строку с помощью getline(), как сейчас, в буфер и скопировать суб- которые вы хотите привязать к фактическому связанному списку. Другим решением было бы использовать cin пару раз для временной переменной, чтобы сожрать мусор, а затем читать данные в переменных, что легко, так как cin пропускает пробелы.

Есть, вероятно, более причудливые решения, но это должно сработать.

+0

+100 для этого, кажется очень приятной идеей, таким образом я могу использовать вторую переменную (которую можно использовать) и оставить все остальное. Спасибо, попробуем и отчитаемся, но недостатком является то, что это делает код немного не столь сложным, я бы сказал. Благодаря тонну. – Titanz

Смежные вопросы