C++更新结构

C++ Update Struct

本文关键字:结构 更新 C++      更新时间:2023-10-16

>我有这个:

typedef struct {
    char nome[50];
    char morada[100];
    char codpostal[8];
    char localidade[30];
    int telefone;
    int nContribuinte;
} CLIENTE;
CLIENTE c;

如何像c.nome = "something";一样更新c.nome?不知道为什么这行不通... c已经填充了保存在二进制文件中的已知信息

我应该这样做:if (Conf == 1) { scanf("%s", c.nome); } else { c = Clt.nome; }

对于类似 C 的字符串,请使用 strcpy((,如下所示:

strcpy(c.nome, "something");

您尝试的不起作用的原因是您使用了类似 C 的字符串,而不是 std::string,这是C++方法,并且重载了赋值运算符。在这种情况下,您的结构将如下所示:

#include <string>
struct CLIENTE {
    std::string nome;
    ...
};
CLIENTE c;
c.nome = "something";

您可以避免使用typedef,如C++中的"struct"和"typedef struct"之间的区别中所述?:

在C++中,所有结构声明的行为就像它们是隐式的 typedef'ed,只要名称不被另一个声明隐藏 同名。