В этом цикле есть несколько ошибок
for(int i =0;1;i++){
if(fgets(waveform[i], 10, filename) == NULL);
break;
if(i < 10)
{
a = atoi(waveform[i]);
win[i] = a;
}
}
Для начала стоит точка с запятой после оператора if
if(fgets(waveform[i], 10, filename) == NULL);
^^^
Во-вторых, вызов fgets
fgets(waveform[i], 10, filename)
^^^
неверен, потому что тип выражения waveform[i]
равен char
.И соответственно это утверждение
a = atoi(waveform[i]);
также недопустимо.
Должно быть не менее
fgets( waveform, 10, filename)
и
a = atoi( waveform );
Полагаю, чтокаждая строка файла содержит ровно одно число.(В противном случае вы должны использовать, например, sscanf
для извлечения чисел из строки, используя внутренний дополнительный цикл.)
Цикл может выглядеть как
int i = 0;
for ( ; i < 10 && fgets( waveform, 10, filename) != NULL; i++ )
{
a = atoi( waveform );
win[i] = a;
}
После цикла переменная i
будет содержать фактическое количество элементов массива win
.
Обратите внимание, что имя filename
не подходит для указателя типа FILE *
.Имя файла - это строка "testFile.txt"
в вашем коде.