Сохранить массив символов в файл, увеличивая его? - PullRequest
0 голосов
/ 08 июня 2018

отредактируйте для простоты внизу

У меня есть небольшая проблема в моем текущем школьном проекте.(обычный c) Сам проект - небольшая викторина внутри консоли, и я пытаюсь сохранить вопросы, их ответы и назначенные пункты.Файл, в котором я хочу его сохранить, уже содержит текст, который будет просканирован на предмет общего количества строк, а затем будет полностью стерт и снова записан.

Это сам файл должен выглядеть в конце:

1#Excel?#Good#Bad#Miserable#Awesome#1#5
2#Word?#Good#Bad#Miserable#Awesome#1#10
3#Powerpoint?#Good#Bad#Miserable#Awesome#4#15

(номер вопроса, сам вопрос, 4 ответа, номер правильного ответа и назначенные баллы)

Сами переменные похожи на это (я просто покажу одну для простоты, они все одного типа)

char frageinhalt[255][255];

есть еще две переменные в моем коде ниже, (строки и я) это оба простые целые числа.lines - это общее количество строк в существующем файле (уменьшено на единицу в приведенном ниже коде, поскольку последняя строка пуста).

Этот массив символов содержит сами вопросы,

frageinhalt[0] = "Excel?"
frageinhalt[1] = "Word?"

и т. д.

и вот как я хочу сохранить его

for(i=0; i<lines-1; i++) {
        fprintf(datei_ptr, "%i#%s\n",i+1,frageinhalt[i]);
}

В чем проблема с этим?

Или есть способ доступа и редактированияконкретная строка внутри файла (в простой форме c), о которой я не знаю?

######### edit #########

, чтобы объяснить это просто (по крайней мере, позвольте мне попробовать): у меня есть переменная

char frageinhalt[255][255];

, которая содержит простые предложения (скажем, 10), такие как

What is the capital of Germany?

Теперь я хочу записать эти предложения (в дополнение к идентификатору) в файл .txt, каждое предложение в отдельной строке, например:

1#What is the capital of Germany?
2#What is the capital of France?

Это код, который я пробовал:

for(i=0; i=10; i++) {
        fprintf(filepointer, "%i#%s\n",i+1,frageinhalt[i]);
}

но это не работает.Зачем?И как я могу это исправить?

...