"Lvalue required"错误

Net*_*110 3 c++

我有以下C++代码,当我编译它时,我得到"Lvalue required"错误.请指出我出错的地方.谢谢.

#include <iostream.h>
#include <conio.h>
void main()
{
  clrscr();
  char r[5];
  int mark;
  cout<<"Please enter your goddamn marks";
  cin>>mark;
  r=mark>=35?"pass":"fail";
  cout<<"\n"<<r;
}
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 10

问题出在这里:

r=mark>=35?"pass":"fail";
Run Code Online (Sandbox Code Playgroud)

您不能将字符串文字分配给char数组.你有几个选择:

  • 使用strcpy()而不是分配;
  • 改变r为类型const char*;
  • 改变r为类型std::string.

最后一个选项是迄今为止最好的选择.

  • 如果你不允许使用`std :: string`,只是为了"现在",那么老师不仅错了,而且也很傻. (2认同)