char数组写入文件

时间:2013-01-09 15:30:45

标签: c arrays string

我有一个名为Product的结构体,其中有一个名为prodname的变量:

char prodname[30];

结构的实例称为product

我写了一个方法来检查用户输入的名称是否唯一。在这个方法中,我将用户输入的值传递给名为checkprodname的方法(char n [30])

主要方法

if(checkprodname(prodName) == 0)
    {
        gotoxy(21,13);
        printf("The Product Name that you have entered already exists.");
        getch();
        addproduct();
        return 0;
    }

然后我有这行代码:

product.prodname = prodName;

为了将temp变量prodName中的值赋值给实际的struct。当然我会继续将所有这些保存到文件中。但到目前为止我收到一个错误,因为这是我得到的错误:

incompatible types when assigning to type char[30] from type char**

我已经使用了相同的逻辑来起作用的prodid;但是在使用字符串时,我不知道如何实现将值实际分配到实际结构中,因为我收到了这个错误。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您使用的是C ++,请考虑使用std :: string替换char数组。并不是说它有太大的区别,但std :: strings通常更容易使用。 (IMHO)

答案 1 :(得分:0)

您无法使用该表示法在C中分配数组。对于字符串,请使用strcpy();对于其他数组,请使用memmove()memcpy()。在所有情况下,请确保目标中有足够的空间来存储源中的内容。

通常情况下,我希望写一下:

strcpy(product.prodname, prodName);

鉴于您收到的编译警告,您似乎需要使用:

strcpy(product.prodname, *prodName);

鉴于下面评论中的讨论,看来第一个替代方案毕竟是正确的,但我认为这意味着编译错误适用于不同的行,而不是显示的赋值。