Я получаю следующие ошибки с моим кодом.
не может преобразовать параметр 1 из 'std :: string' в 'char *
не найден оператор, который принимает правый операнд типа 'const char *
Может кто-нибудь сказать мне, что я делаю неправильно в функции menuSelection ниже? Смысл в том, что если пользователь выбирает 1 из пунктов меню, программа получает пользовательский ввод (lastName, firstName, courseName, letterGrade) и передает его в функцию addRecord, но я думаю, что мои типы данных отключены.
Извините за длинный пост. Функция menuSelection расположена справа внизу относительно функций main () и head ().
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
void GradeBook::addRecord(char* lastName, char* firstName, char* className, char letterGrade)
{
StudentRecord* newRecord = new StudentRecord(lastName, firstName, className, letterGrade);
if (_headRecord == NULL) {
_headRecord = newRecord;
} else {
int compare = _headRecord->compareTo(lastName, firstName);
if (compare < 0) {
// we insert before the first element
newRecord->setNext(_headRecord);
_headRecord = newRecord;
} else {
_headRecord->insert(newRecord);
}
}
}
void menuSelection(int selection, GradeBook& gradeBook) {
string firstName;
string lastName;
string courseName;
char letterGrade;
switch(selection) {
case 1: cin >> lastName.c_str() >> firstName.c_str() >> courseName.c_str() >> letterGrade;
gradeBook.addRecord(lastName, firstName, courseName, letterGrade);
case 4: gradeBook.read("students.txt");
gradeBook.displayAllRecords();
break;
case 5: gradeBook.write("students1.txt");
break;
default: cout << "Enter a valid choice.\n";
}
if (selection != 5) {
displayMenu();
cin >> selection;
menuSelection(selection, gradeBook);
}
}
void header() {
cout << "STUDENT GRADEBOOK AND GPA CALCULATOR\n";
cout << "=====================================\n";
}
void main()
{
GradeBook gradeBook;
int userSelection;
header();
displayMenu();
cin >> userSelection; // get the user input for menu selection
menuSelection(userSelection, gradeBook);
char pause;
std::cin >> pause;
}