在新文件中显示一些字符

时间:2019-04-26 07:05:22

标签: c structure

我想读'c'和“ Hello world !!”但我只看到十六进制部分。

结构如下:

typedef struct step
{  

int n;

 char l;

 char c[25];                                                      

 } toto;




    int fd = open("one-structure.yolo", O_CREAT | O_WRONLY, 777);
    toto some;

    some.n = 212347;
    some.l = 'c';
    some.c[25]  = "Hello world!!";
    write(fd, &some.n, sizeof(int));
    write(fd, some.l, sizeof(char));
    write(fd, some.c, 13);

    close(fd);

结果:{= U @ f

2 个答案:

答案 0 :(得分:2)

除了 Sourav Ghosh 指出的问题。

您不能使用赋值运算符将字符串分配给数组。

some.c[25]  = "Hello world!!";

您需要使用strcpy

   strcpy(some.c, "Hello world!!");

some.c用作指针。

答案 1 :(得分:1)

除了基兰答案外,您还需要将write(fd, some.l, sizeof(char));更改为write(fd, &some.l, sizeof(char));,因为write需要一个指针。