我有这个:
typedef struct {
char nome[50];
char morada[100];
char codpostal[8];
char localidade[30];
int telefone;
int nContribuinte;
} CLIENTE;
CLIENTE c;
如何更新c.nome
之类的c.nome = "something";
?无法弄清楚为什么这不起作用... c
已经填充了保存在二进制文件中的已知信息
我应该这样做:if (Conf == 1) { scanf("%s", c.nome); } else { c = Clt.nome; }
答案 0 :(得分:3)
对于类似C的字符串,请使用strcpy(),如下所示:
strcpy(c.nome, "something");
您尝试的不起作用的原因是您使用了类似C的字符串,而不是std::string,这是C ++方法,并且已经重载了赋值运算符。在这种情况下,您的结构将如下所示:
#include <string>
struct CLIENTE {
std::string nome;
...
};
CLIENTE c;
c.nome = "something";
您可以避免使用typedef,如Difference between 'struct' and 'typedef struct' in C++?:
中所述在C ++中,所有 struct声明都像隐式一样 typedef'ed ,只要该名称不被另一个声明隐藏 同名。