2

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

struct print{
   string marka, format, speed, price;
};

Моя структура, данные считываются из текстового файла. как сделать ввод? Данные в тестовом файле:

Canon Panasonic HP
A4 A5 A4
100 10 50
22000 200000 10000
Qwertiy
  • 123,725
Viktor
  • 29
  • Чтобы понять как читать данные, нужно понять в каком они формате записаны. – Владимир Мартьянов Nov 24 '17 at 09:28
  • Какой формат текстового файла? Если произвольный то можно сделать такой: marka;format;speed;price. Потом считывать файл построчно и парсить по разделителю – Rikitikitavi Nov 24 '17 at 09:29
  • @Anton а никто не говорил про текстовый, может там бинарник хитрый? – Владимир Мартьянов Nov 24 '17 at 09:32
  • В вопросе сказано что текстовый – Rikitikitavi Nov 24 '17 at 09:38
  • Данные в формате текста – Viktor Nov 24 '17 at 09:40
  • 1
    Возможный дубликат вопроса: Как считывать структуру из файла? – Andrio Skur Nov 24 '17 at 09:41
  • @Anton если можно пример, было бы замечательно, только начал изучать языки) – Viktor Nov 24 '17 at 09:41
  • Используй cin.getline – Qwertiy Nov 24 '17 at 09:44
  • @Anton хм, специально же посмотрел и не увидел. – Владимир Мартьянов Nov 24 '17 at 09:45
  • @Viktor Не совсем понятно в чем проблема тогда, если там текст. – Владимир Мартьянов Nov 24 '17 at 09:46
  • @Qwerity Для этого нужен фиксированный размер, если я не ошибаюсь, в данном случае он не фиксированный – Viktor Nov 24 '17 at 09:46
  • @ВладимирМартьянов Возможно проблемы и нет, просто я не знаю как это сделать) Попробовал разные методы, но неполучаетсо( Людей знающих в круге общения нет, так как я на первом курсе, делаю лабу за 3ий, поэтому пришел сюда – Viktor Nov 24 '17 at 09:48
  • @Viktor читаете по одному байту (то есть символу), если символ не пробел - добавляете его к строке. Если символ пробел - пропускаете его и следующий символ нужно будет писать в другу строку. Если встретили конец строки - переходить к следующей структуре. Например так. – Владимир Мартьянов Nov 24 '17 at 09:49
  • @ВладимирМартьянов Сработает для string? Конец строки, если я не ошибаюсь это "\0" - но это же для char?А для string как? – Viktor Nov 24 '17 at 09:54
  • @Viktor разумеется. Нет проблем написать что-то типа char c = 'G'; string s = "DEF"; s = s + c; – Владимир Мартьянов Nov 24 '17 at 09:55
  • @ВладимирМартьянов Спасибо, буду пробовать, если возникнут какие-то вопросы, можно будет обратиться?) – Viktor Nov 24 '17 at 09:58
  • @Viktor создаете вопрос, прикладываете сразу (!) код и образец данных для чтения. Четко формулируете проблему, с которой столкнулись... :-) – Владимир Мартьянов Nov 24 '17 at 10:01
  • @ВладимирМартьянов Спасибо)) Учту все замечания) – Viktor Nov 24 '17 at 10:02

0 Answers0