如何确保当用户输入新数据时我的数据不会被覆盖? [C 结构和文件]

How to make sure that my data does not get overwritten when user inputs new ones? [C Structures & Files]

我正在尝试创建一个可以包含多个播放列表和多首歌曲的程序。我的问题是每个播放列表似乎只能包含一首歌曲。当用户输入一首新歌曲时,之前的歌曲会被覆盖。我做错了什么,我该如何解决?

字段songs是一个数组。当您执行 songs->title 时,您会访问数组第一个元素的标题。

您应该有一个索引来跟踪设置的歌曲。该字段 song_count 似乎就是为了这个目的。

void addSongToPlaylist(struct playlist *playlists, int index){
    int i, choice;

    printf("THE PLAYLISTS AVAILABLE ARE:\n");
    for (int i = 0; i < index; i++){
        printf("\t[%d] %s\n", i, playlists[i].name);
    }

    printf("\nEnter playlist number: ");
    scanf("%d", &choice);

    printf("\nEnter song title: ");
    scanf("%s", playlists[choice].songs[playlists[choice].song_count].title); 
    printf("Enter song artist: ");
    scanf("%s", playlists[choice].songs[playlists[choice].song_count].artist); 
    printf("Enter song album: ");
    scanf("%s", playlists[choice].songs[playlists[choice].song_count].album); 

    // Increment sound_count for next time
    playlists[choice].song_count++;

    printf("Succesfully added song to playlist!\n");
}