永发信息网

【c++编程问题】 指针指向字符串,使用cin>>怎么不对呢?

答案:4  悬赏:30  手机版
解决时间 2021-01-31 10:31
  • 提问者网友:嗝是迷路的屁
  • 2021-01-30 20:50
#include
#include
#include
#define ERROR -1
using namespace std;

typedef struct PCBNode
{
// char name[10]; //进程名
string name;
PCBNode *next; //指针
int time; //要求运行时间
int priority; //优先数
char state; //状态
}PCB;

int main()
{
PCB *p;
if(p= (PCB *)malloc(sizeof(PCB)))
{
cin>>p->name>>p->priority>>p->time;
p->next=NULL;
p->state='R';
}
else return ERROR;
}
问题出在“cin>>p->name”这里。vc 6.0调试不能通过,devc调试能通过。
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-01-30 21:23
你这是C++程序啊,用new来申请内存吧。
PCB *p;
if(p= new(PCB))

string类的输入可用getline(cin,p->name);
char [10]的话可以直接cin>>
全部回答
  • 1楼网友:西风乍起
  • 2021-01-30 23:30
结构体中用string类型接char型字符?你输入的是char型的字符,没有转换的话,不能直接为string类型的变量赋值吧。 改用 char name[10]; 可避免错误。 typedef struct PCBNode { char name[10]; //进程名 //string name; PCBNode *next; //指针 int time; //要求运行时间 int priority; //优先数 char state; //状态 }PCB;
  • 2楼网友:怀裏藏嬌
  • 2021-01-30 22:59
不知道具体问题,不过我觉得如果你输入的进程名含有空格应该就会有错,因为cin以空白符结束输入,即空白后的字符可能会传入priority中。
  • 3楼网友:人類模型
  • 2021-01-30 22:53
首先 指针的变量 前缀 * 统一报错,其次,想打印出地址对于非指针对象的变量统一使用 & 。 string 是字符串,想访问地址得用& ,或者[]也可以。 楼主,还是复习下指针和变量吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯