Как организовать чтение данных - C (СИ)
Формулировка задачи:
Здравствуйте, есть простенькая задача с олимпиады по программированию (10-11 классы). На php написал ее без проблем (брал данные из файла), а вот на СИ не могу справиться..
Прошу помощи организовать чтение данные. В остальном разберусь сам.
Итак, входные данные:
1я строка - число N (1<=N<=31), количество занятий в текущем месяце
Во второй строке через пробел, в порядке возрастания перечислены дни, в которые будут проходить занятия
В следующих N строках располагается информация о пирожках, продаваемых в этот день – сначала указано число Mi – количество пирожков, продаваемых в этот день, затем через пробел записаны Mi чисел – цены пирожков, продаваемых в этот день. Все числа натуральные не превосходящие 1000.
набросок исходника
В общем, буду благодарен, если подтолкнете на верный путь или покажите пример исходника, который подойдет для данной задачи.
P.S. например, есть массив символов "1 5 12 23 30", можно как-то из него создать массив типа Int, где элементы - цифры из строки? в php для этого есть explode(). в СИ ничего подобного не нашел...
#include <stdio.h>
int main(){
int N;
scanf("%d", &N);
/*тут как-то надо считать дни, в которые будут проходить занятия и записать их в массив. думаю, что надо как-то использовать подобный цикл
int i=0, d[N];
while(scanf("%d", &d[i++]));
но эту идею так и не смог развить.. дело в том, что после заполнения массива опять срабатывает scanf. выйти из цикла можно только если ввести не целое число (например, букву или знак препинания)*/
/*над этим еще не думал, так как застрял на прошлом шаге...*/
return 0;
}Решение задачи: «Как организовать чтение данных»
textual
Листинг программы
while(!feof(infile)){ //do something};
Объяснение кода листинга программы
- В начале данного кода, вероятнее всего, открывается файл
infileдля чтения. - Затем происходит проверка условия
feof(infile), которое возвращает значение true, если достигнут конец файла, и false в противном случае. - Пока условие
feof(infile)возвращает false, выполняется некий блок кода. - В этом блоке кода, скорее всего, происходит чтение данных из файла
infile. - После выполнения всех операций внутри цикла, программа продолжает выполнение следующей итерации цикла.
- Если достигается конец файла (feof(infile) возвращает true), то выполнение программы продолжается после цикла.
- В конце программы, возможно, закрывается файл
infile. Важно отметить, что без дополнительного контекста трудно дать более точное объяснение.