【发布时间】:2014-05-26 21:32:11
【问题描述】:
我正在尝试学习 C++,但我有点卡住了。
我正在使用Geany 和 CentOS 创建一个基本的成绩簿应用程序。
Geany 在应用程序的 for 和 cout 行上显示红色卷线。我觉得一切都在正确的语法,但我得到“编译失败”。
我的来源有什么问题?
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main(void){
// Declaration of local variables for gradebook
vector<int> gradeVector;
char choice;
bool menu = true;
// User Menu
while (menu){
cout << "This is the gradebook menu\n";
cout << "Please enter (a) to Show All Grades\n";
cout << "Please enter (l) to Show Last Grade\n";
cout << "Please enter (g) to Add Grade\n";
cout << "Please type 0 to Exit.\n";
cin >> choice;
switch(choice){
case 'a':
for (i=0;i <= gradeVector.size(); i++)
cout << "These are the grades entered: \n"<<gradeVector.at(i);
break;
case 'l':
cout << "This was the last grade entered: \n" << gradeVector;
break;
case 'g':
cout << "Please add a grade to the gradebook: \n" << cin >> gradeVector.push_back();
break;
case 0:
menu = false;
break;
default:
cout << "Please ONLY use lower-case a, l, g, or 0 as your choice.\n"
}
}
return (0);
}
【问题讨论】:
-
您的源不使用跟随您的初始菜单选择输入的换行符。您的 question 有什么问题会丢失信息,即描述这是应该做什么,它似乎做什么,以及任何怀疑你可能会隐瞒为什么。关于编译失败消息; 逐字发布 在尝试修复它们但失败后。 (首先声明
i,这应该很明显)。 -
您的代码中有很多错误。一:在for循环中,
i没有声明,使用int i;第二:"This was the last grade entered: \n" << gradeVector;没有意义,例如使用gradeVector.at(gradeVector.size());在发布问题之前先使用调试器 -
对。我只是注意到我的 i 没有被声明。我刚刚修好了。 “这是输入的最后一个评分:”行只是一个猜测。我忘了提到我需要在那条特定线路上的指导。 gradeVector.at(gradeVector.size());应该可以让我试试看。
标签: c++ vector switch-statement