【发布时间】:2018-07-08 08:08:33
【问题描述】:
我想创建一个编辑函数,通过引用歌曲向量作为参数接收。 (使用指针)
用户必须选择歌曲编号并重新输入向量该位置的数据。
我创建了结构,我已经收到了值并且我正在玩。但我不知道如何编辑。有人可以帮我开始这部分吗?
#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(){}
【问题讨论】:
-
您的变量
music是全局变量,因此您可以按原样使用它,就像在play中一样。如果您想将其作为参数传递,您需要添加参数void edit(registry_of_music music[]) {}并调用edit(music)。 -
C 中没有向量。
-
fflush(stdin)不符合标准,您可能不应该使用它或非常依赖它。
标签: c vector data-structures struct point