Похоже, вы знаете, как кодировать, но не можете разобраться в проекте. Разрушение проекта становится логикой. Полезно разбить проект на части, а затем погуглить каждую точку, которую вы не понимаете. Очевидно, ваш проект перегружен информацией. Просто попробуйте в следующий раз.
И, конечно, это много, но с помощью этого метода вы сэкономите много времени в долгосрочной перспективе. ✔︎
Разбивка
• Прочитать файл
• Укажите столбец «Оценка».
• Читать только эти значения в столбце «Оценка».
• Убедитесь, что все символы значения isdigit()
• Преобразуйте значения в целые числа: atoi()
, затем добавьте эти значения в массив для любого использования, которое вы хотите использовать позже. to carry out calculations
как вы сказали.
Исследовательская разбивка
• Чтение файла
=> C Читать текстовый файл ... Now you have access to each line
• Укажите столбец «Оценка»
=> несколько пробелов в одном => by doing this step, its now easy to identify what your Columns "ID Grade ... ..." are delimited by.
=> Найти подстроку строки в C ... Now you know you're currently on the line of your HEADERS ... You'll use this headers to figure out what column your grades are under.
=> Используя пример strstr()
, который вам предоставил отличный интернет, вы теперь получаете в своем распоряжении порядковый номер начального символа слова «Оценка».
=> К счастью для вас, вы уже сделали разделитель столбцов одним пробелом, так что теперь вы перебираете строку, пока не достигнете этого номера индекса.
=> Но при этом вам нужно посчитать количество пробелов, которые вы встретите. Потому что, когда ваш цикл достигает индекса, у вас будет номер столбца ваших оценок - "Оценка", который на самом деле является не чем иным, как количеством пробелов.
• Убедитесь, что все символы значения представляют собой цифры
isdigit ()
=> цикл до столбца, в котором находится значение вашей оценки ... вы можете сделать это, потому что вы знаете номер столбца и разделитель столбцов.
=> когда вы достигнете этой точки в строке, начните проверять, если каждый символ после этого isdigit()
. Под «каждым символом после этого» я подразумеваю все символы до пробела.
=> если вы столкнулись с символом, который является чем-то другим, то выведите небольшую синтаксическую ошибку или что-то более крутое, чем это. ваша программа!
=> Теперь, когда вы знаете, что значение оценок - это все цифры, вы хотите atoi () этого плохого парня. но как ? как то так ... ... this example code is how to get that value out of the whole string. Now you need to take that value in atoi(value).
=> тогда вы добавите возвращаемое значение atoi(value)
к вашим значениям
Удачи