I have following problem:
void edit(FILE *f, int cnt)
{
    int i = 0;
    int offset = 0;
    rewind(f);
    schedule todo;
    schedule *p = &todo;
    fprintf(stdout, "\n%s\n", "------------------------------------------------");
    fread(&todo, sizeof(schedule), 1, f);
    while (!feof(f)) {
        fprintf(stdout, "%6d%18s\n",                                
            ++i, todo.title);
        fread(&todo, sizeof(schedule), 1, f);
    }
    fprintf(stdout, "%s\n\n", "-------------------------------------------------");
    fprintf(stdout, "%s\n\n", "Number: ");
    scanf("%d", &i);
    getchar();
    rewind(f);
    offset = (long) sizeof(schedule);
    fseek(f, (i - 1)*offset, SEEK_CUR);
    fread(&todo, sizeof(schedule), 1, f);
    printf("Edit: %s\n", todo.title);
    fprintf(stdout, "%6d%18s%8s%10s%8d\n",                              
        todo.number, todo.title, todo.where, todo.details, todo.importance);
    scanf("%s", todo.title);
    fwrite(&todo, (long)sizeof(todo.title), 1, f);
}
It's part of editing data codes. This is what I expected.
If a user put a number(i in the code), the program will find the location (in binary file).
Then, the user put todo.title by (scanf("%s", todo.title);) and the program will edit it by using 
fwrite(&todo, (long)sizeof(todo.title), 1, f);
I got a warning like
Expression: ("Flush between consecutive read and write.", !stream.has_any_of(_IOREAD))
I think there's problems with buffer, but I can't fix this.
 
     
    