#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct equipamento {
int codDipositivo;
char nomeEquipamento[40];
char newVar[50];
}Equipamento;
insert(int n, int cat, Equipamento eq[])
{
int codigo;
char newVar[40];
printf("\nNew Var: ");
scanf("%s",&newVar);
eq[n].codDipositivo=newVar;
}
main()
{
Equipamento equipamento[MAX_EQ_DSP];
...a bunch of scanfs
scanf("%d",&n);
scanf("%d",&pr);
insert(n, pr, equipamento);
}
这是我所拥有的样本。
在main上,我有一堆 scanfs,它们将更新屏幕上显示的数据,但现在我想将该数据传递到结构中并请求其他信息。
我正在尝试使用更新后的代码,但由于某种原因,它在第一个字符之后崩溃(返回到主循环),而不是 39 个字符
printf("\nNome do Equipamento: ");
gets(nome);
strcpy(eq[n].nomeEquipamento, nome);
最佳答案
你的问题是这一行:
eq[n].codDipositivo=newVar;
在C中,你不能给数组赋值,你需要逐个元素地复制它们。请记住,C 没有字符串数据类型,字符串只是一个以 NUL 结尾的 char 数组。幸运的是,C 库中有一个函数可以帮助我们,strcpy
。
strcpy(eq[n].codDipositivo, newVar);
要获取 strcpy
的声明,您需要在代码顶部添加以下包含内容:
#include <string.h>
关于c - 在 C 上将数据保存为结构体的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039899/