2014-11-26 2 views
0

Я пишу программу для магазина видеообъявлений, который изначально читает в видеоинформации, информации о клиенте и некоторых съемках фильмов клиента из текстового файла. Формат файла данных дает количество видеороликов, но не количество клиентов. После прочтения видеоинформации мне нужно определить, сколько клиентов существует, анализируя файл. Формат файла что-то вроде этого:C++ - следующая строка текстового файла char или int?

количества видео
названия видео
актера
продюсера
режиссера
названия видео
актера
.
.
.
клиент имя, клиент фамилия, покупатель ID номер
.
.
ID клиента, аренда, аренда
.
.

Единственный способ, которым я могу думать, чтобы сделать эту работу без чтения в количестве клиентов из файла, было бы определить, начинается ли следующая строка с символа char или int. Есть ли способ определить это? Не все клиенты имеют запись аренды в файле.

+0

Почему бы не использовать какой-либо SQL (SQLite, MySQL, ...) для хранения ваших данных? – Artur

+0

.csv/.ssv должен сделать трюк. – deW1

+0

[Здесь] (http://stackoverflow.com/questions/23047052/why-does-reading-a-struct-record-fields-from-stdistream-fail-and-how-can-i-fi) вы можете найти некоторые подсказки о том, как подойти к нему. –

ответ

0

Вы можете прочитать файл строки за строкой вместо поля по полю. Имея целую строку в памяти (как строку), вы можете оценить, какой тип строки она есть, и проанализировать ее соответствующим образом.

+0

Я читал строки за строкой в ​​строковые переменные и создавал объекты видео и клиента для циклов. Как я могу проверить содержимое строки, чтобы увидеть, является ли первый элемент номером клиента или именем клиента, если он хранится в строке? Мне нужно знать, когда прекратить создание объектов клиента и начать добавлять арендную плату существующим клиентам. – Jordan

+0

Это немного зависит от ваших данных, но при условии, что идентификаторы клиентов являются числовыми, имена клиентов никогда не начинаются с цифры, а в строках нет начальных пробелов, вы можете судить по первому символу строки. Если это цифра, у вас есть запись об аренде; иначе у вас есть запись о клиенте. –

+0

Это именно то, что я хочу сделать. Тем не менее, я не знаю, как проверить первый символ строки, чтобы увидеть, является ли она цифрой или символом. Есть идеи? – Jordan