Вам нужно fclose(fPointer);
, а затем снова открыть, прежде чем вы хотите получить вопросы из файла.
fclose(fPointer);
fPointer = fopen("input.txt", "r");
fscanf
читает слово за словом, а не всю строку. Вы должны использовать fgets()
или getline()
.
Я вижу в вашем коде, вы задаете длину всех вопросов на 150
int lengthOfQuestion = 150;
Так что, я думаю, это проще когда вы объявляете структуру (вы можете использовать указатель, если хотите):
typedef struct
{
char questions[150];
} Lines;
Вы должны использовать один l oop для хранения и увеличения количества строк. Код будет более читабельным. Например:
char line[150];
lines = malloc(sizeof(Lines));
if(!lines) {// handle the error}
while (fgets(fPointer, sizeof(line), line)) {
strcpy(lines[numberOfLines].question, line);
numberOfLines++;
lines = realloc(lines, sizeof(Lines) * numberOfLines);
if(!line) {// handle the error}
}