如何从函数返回单个char

时间:2014-11-25 17:52:38

标签: c++

我对编程比较陌生;我是大学c ++课程的介绍。

我如何将单个字符从函数返回到main?我还没有看到任何回答这个问题的帖子足以让我理解。

提前致谢!

对于那些感兴趣的人,这是我写的代码让我提出这个问题。 (注意:我的教授告诉我们在所有程序中包含cstdlib和iostream,并将using namespace std放在main之前。我已经看过几篇帖子说不要使用它,但这就是我的教授如何写我们的程序。)

char evaluate(int score){
/*receives an int score out of 100 from main  and determines what letter grade to return */
if (score >= 90 && score <= 100)
  return "A";
else if (score >= 80 && score <= 89)
  return "B";
else if (score >= 70 && score <= 79)
  return "C";
else if (score >= 65 && score <= 65)
  return "D";
else
  return "F";
}

当我这样做时,我得到了错误:来自&#39; const char *&#39;的无效转换去#char;&#39; [-fpermissive]&#34;

任何想法为什么?

4 个答案:

答案 0 :(得分:5)

"A"是一个字符串文字。你的意思是'A'

答案 1 :(得分:4)

  return "A";

将返回const char*

类型

你应该使用: -

return 'A'

返回一个角色。

答案 2 :(得分:0)

或者,您可以通过执行以下操作来消除多个return语句:

char evaluate(int score)
{
    char grade;
    if (score >= 90 && score <= 100)
      grade = 'A';
    else if (score >= 80 && score <= 89)
      grade = 'B';
    else if (score >= 70 && score <= 79)
      grade = 'C';
    else if (score >= 65 && score <= 65)
      grade = 'D';
    else
      grade = 'F';
    return grade;
}

正如其他人所说,你应该使用单引号。 E.g. 'A'而不是双引号。对字符串使用double。 char的单引号。

答案 3 :(得分:0)

你可以做到

char evaluate(int score){
char returnValue = 'F';
/*receives an int score out of 100 from main  and determines what letter grade to return */
if (score >= 90 && score <= 100)
  returnValue = 'A';
else if (score >= 80 && score <= 89)
  returnValue = 'B';
else if (score >= 70 && score <= 79)
  returnValue = 'C';
else if (score >= 65 && score <= 65)
  returnValue = 'D';

return returnValue;
}