У меня проблема в том, что данные не сохраняются должным образом,
То, что я хочу, это чтобы информация оставалась неизменной, когда вы запускаете код.
Вот код, с которым у меня проблемы:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
typedef struct{
int select;
char NoteNames[20];
char NoteTexts[200];
}Notes;
char Input[20];
bool RUN = true;
#define ARRAYLEN 2
Notes a[ARRAYLEN];
int main(void) {
int i;
FILE *fp;
while(RUN == true){
printf("\nWould you like to view notes or take notes?\n<view/take/leave>\n");
scanf("%s",Input);
if (strncmp(Input, "view",1)==0){
fp = fopen ("Notes.dat", "a+");
printf("Here are the notes\n\n");
for(i=0; i<(ARRAYLEN-1); i++){
fread(&a[i], sizeof(a), 1, fp );
printf("%s : %s \n",a[i].NoteNames,a[i].NoteTexts);
}
fclose(fp);
}
if (strncmp(Input, "take",1)==0){
fp = fopen ("Notes.dat", "a");
printf("\nNote name : ");
scanf("%s",a[i].NoteNames);
printf("\nNote text : ");
scanf("%s",a[i].NoteTexts);
fclose(fp);
}
if (strncmp(Input, "leave",1)==0){
RUN = false;
}
}
return 0;
}
Я пробовал что-то вроде изменения типа fopen (т. Е. R / r + a / a +), но я не могу выяснить, что не так с кодом.
Извините, если я делаю это совершенно неправильно, это в основном несоответствие кода, который я могу найти в Интернете xD.
Edit:
Вывод был все нормально и то, что я ожидал, но проблема, как я уже сказал, в том, что данные не сохранялись.
---HERE IS WHAT IT OUTPUTS---
Would you like to view notes or take notes?
<view/take/leave>
take
Enter the notes name:
lol
Enter the notes text:
kek
Would you like to view notes or take notes?
<view/take/leave>
view
lol : kek
Would you like to view notes or take notes?
<view/take/leave>
leave
>
---NEXT RUN---
Would you like to view notes or take notes?
<view/take/leave>
view
:
Would you like to view notes or take notes?
<view/take/leave>
---END OF OUTPUT---