#c #file
#c #file
Вопрос:
Прямо сейчас я делаю домашнее задание, в котором мне нужно прочитать .csv — файл с разными лотерейными подсказками. Прямо сейчас мне нужно проверить, действительно ли существует номер подсказки / если он действителен. (Это допустимо, если число больше или равно 0, и если оно меньше или равно наибольшему числу подсказок).
Это то, что я бы сделал:
bool is_tip_number_valid(int tip_number){
if(tip_number < 0){
return false;
}
}
конечно, в if-условии мне нужно проверить, больше ли число подсказок, чем количество строк в csv.
Есть ли какой-либо способ получить строки в csv?
Я думал, что могу просто запустить весь файловый поток с помощью цикла, но для этого потребуется очень много времени, потому что csv содержит около 500000 строк.
Комментарии:
1. Нет, для этого нет функции, просто подсчитывайте количество
fgets
до тех пор, пока файлы не будут полностью прочитаны.2. Если каждая строка имеет фиксированный размер, вы можете рассчитать число на основе этого и общего размера файла. В противном случае вам придется читать файл и считать их по ходу дела.
3. Лично, если то, что вы делаете, включает в себя множество поисков разных строк файла, я бы поместил его в базу данных sqlite, добавил соответствующие индексы и запросил это вместо этого.