У меня есть файл с именем points.dat
, который читает что-то вроде:
5
2 5
-1 18
0 6
1 -1
10 0
Первое число - это количество упорядоченных пар. Следующие 5 строк содержат эти упорядоченные пары. Что я могу сделать, чтобы прочитать по первому числу, определить, сколько существует точек (отсюда я могу malloc
массив structs
для хранения точек).
Моя проблема в том, что fgetc
здесь на самом деле не работает. Что делать, если первое число состоит из двух цифр? Скажем, первое число - 10. fgetc
получит только «1». Кроме того, fgets
на самом деле не работает, так как вам нужно указать длину количества символов, которые вы хотите прочитать. То же самое относится и к fscanf
.
Настоящая проблема возникает, когда приходит время получить упорядоченные пары. Я тоже понятия не имею, как это сделать. Пока я думаю только о том, чтобы взглянуть на строку: если он видит не пробелы или не '\ n's, он будет читать число как координату x точки 1. Цикл. Получить координату у. Как только он нажмет '\ n', он перейдет к следующей строке и начнет искать значения для хранения в следующем struct
в массиве structs
.
(При этом я также должен быть уверен, что atoi
может преобразовать все это в целые числа ...).
Если у кого-то есть идеи, чтобы помочь, они ценятся.