Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.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+中生成指向结构或对象的指针数组+;_C++_Pointers_Struct - Fatal编程技术网

C++ 在C+中生成指向结构或对象的指针数组+;

C++ 在C+中生成指向结构或对象的指针数组+;,c++,pointers,struct,C++,Pointers,Struct,所以我基本上只是尝试接收一些文件输入,然后获取数据并将其放入几个结构中。我遇到的唯一问题是指向结构的指针的命名。结构本身应该代表学生,我想将每个指针设置为它们的名称之一,而不是任意变量。我试着用一种我认为在语法上是错误的方式来做这件事,因为它不起作用。在下面的代码中,我使用临时数组增加for循环,因为每个第四个位置都是一个新的学生。有没有关于我该怎么做的想法 #include<iostream> #include<iomanip> #include"student.h"

所以我基本上只是尝试接收一些文件输入,然后获取数据并将其放入几个结构中。我遇到的唯一问题是指向结构的指针的命名。结构本身应该代表学生,我想将每个指针设置为它们的名称之一,而不是任意变量。我试着用一种我认为在语法上是错误的方式来做这件事,因为它不起作用。在下面的代码中,我使用临时数组增加for循环,因为每个第四个位置都是一个新的学生。有没有关于我该怎么做的想法

#include<iostream>
#include<iomanip>
#include"student.h"
#include"creditcard.h"
#include<fstream>
using namespace std;

int main ()
{
    string creditcards[20];
    int i;
    int x;
    int amount;
    string temp[20];
    ifstream infile;
    string filename;
    int count;
    int numstudents;
    string newstring="";
    string pointers[20];

    cout<<"enter the file name of which you've stored your"<<endl
        <<"credit card infomation"<<endl;

    getline(cin,filename,'\n');
    infile.open(filename.c_str());

    count=0;
    getline(infile,temp[count],'\n');
    while(! infile.eof())
    {
        count++;
        getline(infile,temp[count],'\n');          

        numstudents= (count/4);
        if(numstudents < 1 || count%4 != 0)
        {
            cout<<"incorrect data file"<<endl;
        }
    }

    cout<<numstudents<<endl;

    for(i=0,x=0; i<numstudents;i++,x+4)
    {
        student *temp[x];
        temp[x] = new student;
        pointers[i] = temp[x];
    }

    for(i=0;i<numstudents;i+4)
    {
        cout<<temp[i]<<endl;
    }

    return 0;
}
#包括
#包括
#包括“student.h”
#包括“creditcard.h”
#包括
使用名称空间std;
int main()
{
字符串信用卡[20];
int i;
int x;
整数金额;
字符串温度[20];
河流充填;
字符串文件名;
整数计数;
国际学生;
字符串newstring=“”;
字符串指针[20];

CUT< P>如果你想通过名字来引用学生,请考虑使用<代码>图或 MAP


<>这将允许你通过<代码>学生[ [杰克] ] /代码>或<代码>学生[ [姬尔] ] < /代码>

< P>如果你想能够引用学生的名字,请考虑使用<代码>图或<代码> MAP


这将允许您通过
students[“Jack”]
students[“Jill”]
来引用单个学生。好的,让我们从顶部开始

你的代码(在我重新格式化之前)一团糟。乱七八糟的代码更难阅读,更可能有bug

您有3个数组,每个数组包含20个字符串。为什么需要这么多

其中一个名为
temp
;必须将其用作变量名,这很好地表明您在某个地方错误地处理了数据

您相对较早地声明了
int count
,然后稍后将其初始化为0。虽然这不一定是坏事,但这不是最好的方法(需要时同时执行这两种操作)

可以在一行中声明局部变量多于一个,但是不需要在函数顶部声明它们,这在C++中是不必要的。

int main ()
{
    string creditcards[20];
    int i = 0, x = 0, amount = 0;
(合法,但可能不需要)

通常最好在需要变量之前同时声明和初始化变量:

int count = 0;

getline(infile, temp[count], '\n');
我记得看到,不建议在达到eof之前阅读,尽管我不完全确定这一点。您可能希望更改此项:

while ( !infile.eof() )
{
现在,我在这里看到的第一个实际错误是,你先读一行,递增
count
,然后在行动之前再读另一行。这是故意的吗?如果是,为什么有必要?在循环中执行
getline
和递增将更具可读性,并且可能更可靠

    count++;
    getline(infile, temp[count], '\n');          
这句话是个错误,我认为:

 for(i=0,x=0; i<numstudents;i++,x+4)

这是一种更好的处理方法,并且需要对您现在所做的事情进行大量猜测。

好的,让我们从顶部开始

你的代码(在我重新格式化之前)一团糟。乱七八糟的代码更难阅读,更可能有bug

您有3个数组,每个数组包含20个字符串。为什么需要这么多

其中一个名为
temp
;必须将其用作变量名,这很好地表明您在某个地方错误地处理了数据

您相对较早地声明了
int count
,然后稍后将其初始化为0。虽然这不一定是坏事,但这不是最好的方法(需要时同时执行这两种操作)

可以在一行中声明局部变量多于一个,但是不需要在函数顶部声明它们,这在C++中是不必要的。

int main ()
{
    string creditcards[20];
    int i = 0, x = 0, amount = 0;
(合法,但可能不需要)

通常最好在需要变量之前同时声明和初始化变量:

int count = 0;

getline(infile, temp[count], '\n');
我记得看到,不建议在达到eof之前阅读,尽管我不完全确定这一点。您可能希望更改此项:

while ( !infile.eof() )
{
现在,我在这里看到的第一个实际错误是,你先读一行,递增
count
,然后在行动之前再读另一行。这是故意的吗?如果是,为什么有必要?在循环中执行
getline
和递增将更具可读性,并且可能更可靠

    count++;
    getline(infile, temp[count], '\n');          
这句话是个错误,我认为:

 for(i=0,x=0; i<numstudents;i++,x+4)

这是一种更好的处理方法,并且会让你现在所做的事情有更多的猜测。

亲爱的耶稣,请正确格式化你的代码(我会修复它,但在将来,缩进四个空格,这样对每个人来说都不会太可怕!谢谢).看起来像是@peachykeen打败了我!:)Cheeset不清楚你想在这里实现什么。你说的“获取数据并将其放入几个结构”是什么意思?什么结构?文件中的输入看起来如何?亲爱的上帝,请正确格式化你的代码(我会修正它,但在将来,缩进四个空格以使这对每个人来说都不是完全可怕的!谢谢)。看起来像@peachykeen打败了我!:)Cheeset不清楚你想在这里实现什么。你说的“获取数据并将其放入多个结构”是什么意思?什么结构?文件中的输入看起来如何?