Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何调试C++;使用数组编程? #包括 #包括 第XIIB类 { 字符名[30]; 智力年龄; 整流罩; 浮标; 公众: void getdata(字符a[30],整数i,整数j,浮点k) { 名称[30]=a[30]; 年龄=i; 滚动=j; 分数=k; } 作废数据(作废) { cout_C++_Arrays_Class_Object - Fatal编程技术网

C++ 如何调试C++;使用数组编程? #包括 #包括 第XIIB类 { 字符名[30]; 智力年龄; 整流罩; 浮标; 公众: void getdata(字符a[30],整数i,整数j,浮点k) { 名称[30]=a[30]; 年龄=i; 滚动=j; 分数=k; } 作废数据(作废) { cout

C++ 如何调试C++;使用数组编程? #包括 #包括 第XIIB类 { 字符名[30]; 智力年龄; 整流罩; 浮标; 公众: void getdata(字符a[30],整数i,整数j,浮点k) { 名称[30]=a[30]; 年龄=i; 滚动=j; 分数=k; } 作废数据(作废) { cout,c++,arrays,class,object,C++,Arrays,Class,Object,您的getdata有问题,无法像那样复制字符数组,请尝试以下操作 #include<iostream.h> #include<conio.h> class XIIB { char name[30]; int age; int roll; float marks; public: void getdata(char a[30],int i,int j,float k) { name[30]=a[30];

您的getdata有问题,无法像那样复制字符数组,请尝试以下操作

#include<iostream.h>
#include<conio.h>
class XIIB
{
    char name[30];
    int age;
    int roll;
    float marks;

public:
    void getdata(char a[30],int i,int j,float k)
    {
        name[30]=a[30];
        age=i;
        roll=j;
        marks=k;
    }
    void putdata(void)
    {   
        cout<<"Name:"<<name<<endl;
        cout<<"Age:"<<age<<endl;
        cout<<"Roll:"<<roll<<endl;
        cout<<"Marks:"<<marks<<endl;
    }
};
const int size=5;
XIIB student[size];
void main()
{
    char x[30];
    int ag;
    int rno;
    float mrks;
    for(int p=0;p<size;p++)
    {
        cout<<"Enter Name,Age,Roll and Marks of Student"<<p+1<<endl;
        cin>>x>>ag>>rno>>mrks;
        student[p].getdata(x,ag,rno,mrks);
    }
    for(p=0;p<size;p++)
    {
        cout<<"Student"<<p+1<<endl;
        student[p].putdata();
    }
    getch();
} 
而不是

void getdata(char a[30],int i,int j,float k)
{
    strcpy(name,a); //change this line
    age=i;
    roll=j;
    marks=k;
}
void getdata(char a[30],int i,int j,float k)
name[30]=a[30];
不符合您的期望,是未定义的行为;(这将
a
的第31个字符复制到
name
的第31个字符,而两个字符串的长度都只有30个字符。)


你必须用strcpy(name,a);替换
name[30]=a[30];
,这应该可以用。

name[30]=a[30];
这是未定义的行为,所有其他代码都是不相关的,因为它在第一行爆炸。
array[30]
有30个元素,最后一个是
array[29]它不是2016,不是1996,停止使用<代码> <代码>,即使它是1916,这个代码有可怕的(几乎不存在的)格式。因为你使用C++,而不是字符数组,你可以使用<代码> STD::String 这个名字。@ NICMAN将不编译。<代码> No.<代码>评估该数组的地址不是LValk。
name[30]=a[30];