用指针在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我的意思是«如果你想编辑一个实例,你可以做完全相同的事情,用用户提供的值初始化该实例»。