У меня есть задача, я работаю уже несколько дней, я схожу с ума, Google не помогает, единственный выбор - спросить здесь.
Я абсолютный новичок в C.
У меня есть файл, обычный файл .txt.
Mathematics 5 1 2 3 4 5
Physics 6 1 2 3 4 5 6
Design 7 1 2 3 4 5 6 7
Первое слово - это «курс», первое число - это количество оценок по этому курсу, например, математика, первое число.5 и у меня 5 оценок, 1 2 3 4 5, то же самое с другими курсами.
Мне нужно создать 3 разных массива.
Массив курсов ("Математика »,« Физика »,« Дизайн ») и, конечно, не руками, а взяв все это из ФАЙЛА.
Массив количества оценок (Первое число в каждой строке),
Массив средних оценок (Все числа, кроме первого на каждомline),
МОЯ ОСНОВНАЯ ПРОБЛЕМА:
Я не могу разделить свой файл .txt, чтобы получить только строку (математика, физика и дизайн).
Вот мой код, большинство логических вещей, которые я придумал, но fscanf, к сожалению, говорит мне, что я не могу преобразовать STRING в INTEGER.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main () {
FILE *fp;
fp = fopen("C:\\Project\\project.txt", "r"); //opening already created file
int grades[500];
char courses[300];
for (int i = 0; i < 300; ++i) {
fscanf(fp, "%s", &courses[i]);
if(isdigit(courses[i]))
fscanf(fp, "%d", &grades[i]);
}
fclose(fp);
return(0);
}
В основном этот код не работает.Программа думает о тексте в файле как о строке, я пытаюсь взять его как символ, а затем отправить его в соответствующие массивы, но я физически не могу это сделать.
Еще раз, сначала мне нужно взятьназвания этих курсов, "Математика", "Физика" и "Дизайн" в виде строки, а затем перейти к числам.
Заранее спасибо