Я хотел бы написать программу лотереи на C, которая читает выбранные числа прошлых недель в массив. У меня есть текстовый файл, в котором есть 5 столбцов, разделенных табуляторами. Мои вопросы будут следующими:Как правильно читать числа из текстового файла?
- С чем я должен разделять столбцы? (например, запятая, точка с запятой, табулятор или что-то еще)
- Должен ли я включать вид EOF в последней строке? (например, -1, «EOF»). Есть ли принятое или «официальное» соглашение для этого?
- Какую функцию я должен использовать для считывания чисел? Есть ли какой-либо правильный или «приемлемый» способ чтения данных из текстовых файлов?
Я использовал для написания программы для «Кто хочет стать миллиардером». В этом я использовал какую-то функцию, которая читала каждую строку в массив, который был достаточно большим, чтобы удерживать целую строку. После этого я разделила свои данные в переменные, как это:
line: "text1";"text2";"text3";"text4"endline (-> line loaded into a buffer array)
text1 -> answer1 (until reaching the semicolon)
text2 -> answer2 (until reaching the semicolon)
text3 -> answer3 (until reaching the semicolon)
text4 -> answer4 (until reaching the end of the line)
endline -> start over, that is read a new line and separate its contents into variables.
Он работал должным образом, но я не знаю, если он был достаточно хорош для программиста. (кстати, я еще не программист, изучаю компьютерные науки в университете)
Все ответы и советы приветствуются. Заранее благодарим за вашу любезную помощь!
Хотя «табуляторы» были основой для «вкладок», а Unicode определяет U + 0009 HORIZONTAL TABULATION и U + 000B VERTICAL TABULATION, большинство людей будут писать «вкладки» или «табуляторы», а не «табуляторы» или «табуляции», (используя «вертикальную вкладку» для U + 000B). –
colons ':' или точки с запятой ';' делают отличные разделители для числовых данных. Предложите не использовать 'tabs', поскольку они, как правило, затрудняют чтение данных для людей, поскольку они не всегда легко видны при просмотре текстового файла. Строго предположите, что каждая группа чисел будет разделена с помощью новой строки '\ n'', потому что тогда можно прочитать всю строку, используя вызов' fgets() ', и проанализировать строку в памяти с помощью' sscanf() 'или' strtok () ' – user3629249