【问题标题】:invalid conversion from ‘char*’ to ‘char’ [-fpermissive] How to print?? But inside the variable从 ‘char*’ 到 ‘char’ 的无效转换 [-fpermissive] 如何打印?但在变量内部
【发布时间】:2020-06-15 08:24:23
【问题描述】:
struct student{
    char name[30]...
};

struct element
{
    struct element *ant;
    struct student databse;
    struct element *prox;
};
Element *no = *pointer_to_pointer;

cout<< (*no).datbase.name << endl;

我的名字打印正确。

Element *no = *pointer_to_pointer;

char variable = (*no).datbase.name;
    cout<< variable << endl;

错误。为什么?如何打印?但是在 variable 里面。谢谢。

【问题讨论】:

  • 您正在将 (*no).datbase.name 转换为您上次 sn-p 中的字符。改用:char* variable = (*no).datbase.name;。如果你想从名字中获取一个字符,你应该像这样索引名字:char variable = (*no).datbase.name[0];

标签: c++ pointers linked-list char


【解决方案1】:

您正在尝试将 char 数组 name 转换为单个 char,这不起作用,这些类型不兼容。

如果你想使用name的内容,你应该使用:

const char* variable = (*no).datbase.name;
std::cout << variable << std::endl;

如果您想在 name 字符数组中建立索引,请使用 [] 对其进行索引,如下所示:

/* Take first character of name */
char variable = (*no).datbase.name[0];
std::cout << variable << std::endl;

【讨论】:

    【解决方案2】:

    datbase.name 的类型是char[],这意味着您不能直接将其分配给char 变量。请改用char *variable

    char *variable = (*no).datbase.name;
        cout<< variable << endl;
    

    如果您只想打印一个character,请写:

    char variable = (*no).datbase.name[0]; //the first character of 'name'
    

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      相关资源
      最近更新 更多