Void SetGrade(int total):[错误:无效使用void表达式]

问题描述 投票:-1回答:2

我有这样的代码:

#include <iostream>
using namespace std;
int main(){
    int total = 95;
    cout << "Grade is : " << SetGrade(total) << endl;
}
void SetGrade(int total){ 
     char Grade;
     if (total >= 90){
         Grade = 'A';
     }else if (total > 80 && total <= 89){
         Grade = 'B';
     }else if (total > 70 && total <= 79){
         Grade = 'C';
     }else if (total > 60 && total <= 69){
         Grade = 'D';
     }else{
         Grade = 'E';
     }
}

并且输出为:错误:无效使用void表达式。

c++ void
2个回答
0
投票

您定义的函数将void作为返回类型。要将其传递给std :: cout,您需要传递一些东西。例如。像这样:

#include <iostream>
#include <string>

int main(){
    int total = 95;
    std::cout << "Grade is : " << total2Grade(total) << std::endl;
}
std::string total2Grade(int total){ 
     std::string Grade;
     if (total >= 90){
         Grade = 'A';
     }else if (total > 80 && total <= 89){
         Grade = 'B';
     }else if (total > 70 && total <= 79){
         Grade = 'C';
     }else if (total > 60 && total <= 69){
         Grade = 'D';
     }else{
         Grade = 'E';
     }
     return Grade;
}

0
投票

Bro,这是用:]解决的>

#include <iostream>
using namespace std;
int main(){
    int total = 95;
    cout << "Grade is : "; SetGrade(total);
    return 0;
}
void SetGrade(int total){ 
     char Grade;
     if (total >= 90){
         Grade = 'A';
     }else if (total > 80 && total <= 89){
         Grade = 'B';
     }else if (total > 70 && total <= 79){
         Grade = 'C';
     }else if (total > 60 && total <= 69){
         Grade = 'D';
     }else{
         Grade = 'E';
     }
     cout << Grade;
}

感谢您对堆栈溢出做出贡献!

© www.soinside.com 2019 - 2024. All rights reserved.