使用数组编译错误和' struct'?

时间:2014-11-27 21:37:49

标签: c++ arrays compilation

我刚刚在我的第一个编程课程结束时(第一个编程课程),我需要协助我的代码,看看我是如何弄清楚编译错误。

首先,有一个事实是我试图加载的数组给了我一些问题。

string stu[15];
stu[0]= Billy;
stu[1]= Bobby;
stu[2]= Bailee;
stu[3]= Barney;
stu[4]= Bambi;
stu[5]= Barbie;
stu[6]= Barrie;
stu[7]= Barry;
stu[8]= Benny;
stu[9]= Barkley;
stu[10]= Bennie;
stu[11]= Bonnie;
stu[12]= Bernie;
stu[13]= Bertie;
stu[14]= George;

显然它说每一个都是未宣布的。但我认为这几乎是数组的重点?不要把所有时间花在声明变量上?

我的另一个问题是这段代码......

int name_count = 0;

while (name_count < 15) 
{ 
    inputFile >> (stu[0]); 
    if (!inputFile.good()) break; 
    ++name_count; 
}

我正在尝试将.txt文件中的数据加载到数组中,而我对如何执行此操作感到困惑。

所有代码在一起:

#include <iostream>
#include <fstream>
#include <cmath>
#include <string>

using namespace std;

int main() {
    string inputFile;
    string stu[15];
    stu[0] = Billy;
    stu[1] = Bobby;
    stu[2] = Bailee;
    stu[3] = Barney;
    stu[4] = Bambi;
    stu[5] = Barbie;
    stu[6] = Barrie;
    stu[7] = Barry;
    stu[8] = Benny;
    stu[9] = Barkley;
    stu[10] = Bennie;
    stu[11] = Bonnie;
    stu[12] = Bernie;
    stu[13] = Bertie;
    stu[14] = George;

    ofstream(studentFile)("Students.txt");
    studentFile.open("Students.txt");

    studentFile << " STUDENT INFO HERE ";
    studentFile.close();

    int name_count = 0;

    while (name_count < 15) {
        inputFile >> (stu[0]);
        if (!inputFile.good())
            break;
        ++name_count;
    }

    system("pause");
    return 0;
}

我不断收到编译错误:

  

与'operator&gt;&gt;'不匹配在'inputFile&gt;&gt; stu [0]'

  

'struct std :: string'没有名为'good'的成员

很确定我在这里遗漏了一些东西...任何帮助都会非常感激。非常感谢你。

2 个答案:

答案 0 :(得分:1)

  

与'operator&gt;&gt;'不匹配在'inputFile&gt;&gt; STU [0]'

你不能使用&lt;&lt;或&gt;&gt;用字符串。

inputFile属于std :: string类型,具有任何成员函数 good()。您可能打算使用输入文件流( ifstream )。

另外,请避免使用system()来电。

答案 1 :(得分:0)

您忘记用""

包裹字符串
"Bernie"

C ++目前你试图将你的结构分配给对象BillyBobby等等......

这是因为C ++需要显式类型声明,编译器并不知道Billy应该是字符串而不是对象。您需要使用"Billy来表示字符串类型。

相关问题