用指针在C中编辑我的结构

用指针在C中编辑我的结构,c,vector,data-structures,struct,point,C,Vector,Data Structures,Struct,Point,我想创建一个编辑函数,通过引用歌曲向量来接收作为参数的内容。使用指针 用户必须选择歌曲编号并重新输入矢量位置的数据 我创建了结构,我已经收到了值,我正在玩。但我不知道如何编辑。有人帮我开始这部分吗 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <locale.h> #include <string.h>

我想创建一个编辑函数,通过引用歌曲向量来接收作为参数的内容。使用指针

用户必须选择歌曲编号并重新输入矢量位置的数据

我创建了结构,我已经收到了值,我正在玩。但我不知道如何编辑。有人帮我开始这部分吗

    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #include <locale.h>
    #include <string.h>

      struct registry_of_music  {
        char name[50];
        char artist[60];
        char url[80];
    };
    struct registry_of_music music[9];

    int main() {
    int i;
    printf("\nRegistry of Music\n\n\n");

        for(i = 0; i <= 3;i++ ){
              printf("Name of Music: ");
              fflush(stdin);
              fgets(music[i].name, 50, stdin);

              printf("Name of Artist: ");
              fflush(stdin);
              fgets(music[i].artist, 60, stdin);

              printf("URL of Internet: ");
              fflush(stdin);
              fgets(music[i].url, 80, stdin);
        }

        int op;
        do
        {
            printf("1 - Play\n");
            printf("2 - Edit\n");
            printf("3 - Exit\n");
            printf("Please enter a value:");
            scanf("%d", &op);
                    switch(op) {
                case 1: play();
                        break;
                case 2: edit();
                        break;
                case 3: printf("Bye\n");
                        break;
                default: printf("Try Again\n");
            }
        } while (op!=3);

      getch();
      return(0);
}
    void play(){
    int i;
        for(i = 0; i <= 3;i++ ){
           printf("Name ...........: %s", music[i].name);
           printf("Artist .....: %s", music[i].artist);
           printf("URL .....: %s", music[i].url);
     }
}

    void edit(){}

如果对未初始化的结构或已初始化的结构执行«填充结构实例»操作,则该操作完全相同。即使实例没有初始化,它的字段中也有一些垃圾值


另一方面,无法指定默认值,默认值将显示在fgets的提示中,并可用于键盘编辑,除非您使用的是更复杂的且未包含在ISO C标准工具中的音乐。

您的可变音乐是全局的,因此您可以像在播放中一样使用它。如果您想将其作为参数传递,您需要添加一个参数void editregistry_of_music music[]{}并调用editmusic。C中没有向量。fflushstdin不符合标准,您可能不应该使用它或非常依赖它。1请不要回答有关代码的离题问题。2我看不出这是如何回答问题3的,它可以很好地用标准C库完成。4如果没有像readline这样的非标准但非常常见的库,它将更加复杂。5个静态变量总是保证初始化。@Olaf我的意思是«如果你想编辑一个实例,你可以做完全相同的事情,用用户提供的值初始化该实例»。