C - Заполнение структуры из текстового файла - PullRequest
0 голосов
/ 10 августа 2011

У меня есть текстовый файл, заполненный некоторыми цифрами, которые я хотел бы прочитать.

Мой текстовый файл выглядит следующим образом.

1  2  3  5  0

2  5  8  5  0

7  8  6  9  0

Я хотел бы прочитать этот текстовый файл в эту структуру:

struct numbers num[]

Моя структура определена так:

struct numbers {
       int totalnumbers;
};

Первый раз этоперейдем в структуру:

1  2  3  5  0

И второй раз:

2  5  8  5  0

И так далее, в конце файла.

Большое спасибо заранееза любую помощь.

Ответы [ 3 ]

4 голосов
/ 10 августа 2011

Мой совет - обратиться к заметкам / учебнику курса и начать писать код.
Честно говоря, вы ничего не узнаете, взяв законченную программу из ответов здесь.

  • Начните с написания программы для открытия файла и записи первой строки в файле в консоль ( подсказка fopen и fgets.. Я думаю, это было давно).
  • Затем вставьте цикл для записи каждой строки в консоль.
  • Затем выясните, как разбить строку на отдельные числа ( подсказка strtok)
  • Затем выясните, как преобразовать числа из файла (которые являются строками) в целые числа ( подсказка предпочитайте strtol вместо atoi)
  • Затем объявите массив large и вставьте в него числа.

Программирование - это все о «разделяй и властвуй», которое на самом деле просто решает маленькие проблемы по одной до тех пор, пока не появится большаяпроблемы решены.

Надеюсь, это поможет.

0 голосов
/ 10 августа 2011

Вы можете использовать scanf ("% i",) для каждого значения, которое вы хотите прочитать. Это немного опасно, потому что легко вывести из строя программу и из-за того, что трудно определить, сколько записей в файле (последней проблемы можно избежать, если первое значение в файле скажет вам количество строк со значимым содержимым)

Другая возможность - прочитать строку, используя fgets () (not gets ()), и токенизировать ее либо с помощью strtok (), либо с помощью пользовательского цикла, который анализирует строку (не рекомендуется, это беспорядочно писать, создает код спагетти и уязвим для ошибок).

0 голосов
/ 10 августа 2011

вы можете использовать strtok (input, "\ n"), а затем конвертировать полученные строки в числа с помощью atoi ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...