gpt4 book ai didi

排序函数中的 C++ 错误

转载 作者:行者123 更新时间:2023-11-28 06:01:05 25 4
gpt4 key购买 nike

我正在为一项作业制作一个学生记录系统。尝试运行程序时出现错误:

"error: conversion from '' to non-scalar type 'std::stringstream' requested"

它来自 stringstream key = student[j].getLastName 行。不知道哪里出了问题。

#include <sstream>
#include <iostream>
#include <fstream>
#include "Date.h"
#include "Address.h"
#include "student.h"


using namespace std;

int main(){

string line;
ifstream inputFile("studentdata.txt");
bool keepGoing = true;
Student *student = new Student[50];
int i = 0;
while(!inputFile.eof()){
getline(inputFile, line);
student[i].setInfo(line);
i++;
}
int choice;
cout << "A Heap of Students";
while(keepGoing){ //This while loop creates the menu and asks for user input
cout << "What would you like to do?" << endl;
cout << "1. Print full report." << endl;
cout << "2. Print simple report." << endl;
cout << "3. Sort records." << endl;
cout << "4. Quit" << endl;
cin >> choice;

//prints full student report
if(choice == 1){
for(int i = 0; i < 50; i++){ //Full print loop
cout << student[i] << endl;
}
cout << endl;
keepGoing = true;
}
//Just first and last name
else if(choice == 2){
cout << "First Last" << endl;
for(int i = 0; i < 50; i++){ //Simple print loop
cout << student[i].getFirstName() << " " << student[i].getLastName() << endl;
}
cout << endl; //formatting
keepGoing = true;
}
//sort function
else if(choice == 3){
for(int j = 1; j < 50; j++){
stringstream key = student[j].getLastName;
int i = j - 1;
while(i > 0 && student[i].getLastName > key){
student[i+1] = student[i];
i = i - 1;
}
Student[i + 1] = key;
}

for j = 1 to A.length
key = A[j]
i = j - 1
while i > 0 and A[i] > key
A[i + 1] = A[i]
i = i - 1
A[i + 1] = key

keepGoing = true;
}
//quit
else if(choice == 4){
cout << "Goodbye!" << endl;
keepGoing = false;
}
}
return 0;
}

最佳答案

当您执行 stringstream key = student[j].getLastName 时,您尝试创建一个从 getLastName 复制的新 stringstream 对象。现在,getLastName 可能是一个成员函数,所以编译器不知道如何从它构建一个 stringstream

您可能想用您的成员函数返回的初始化一个stringstream,所以:

stringstream key(student[j].getLastName());

关于排序函数中的 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33282328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com