我最近开始关注Edx的CS50课程。当我尝试编译代码时,我遇到了第二个问题集,这条消息出现了:
public class ValidateModelStateAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
actionContext.Response = actionContext.Request.CreateErrorResponse(
HttpStatusCode.BadRequest, actionContext.ModelState);
}
}
}
如果您需要我的代码,请点击:
Repository<User> userRepository = new Repository<User>();
[HttpPost, ActionName("Register"), AllowAnonymous, ValidateModelState]
public ActionResult Create(UserRegister useReg)
{
userRepository.Insert(UserFactory.UserRegisterFactory(useReg));
userRepository.save();
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
如果我的代码有任何其他问题,请您为我提示一下吗?
答案 0 :(得分:3)
int main (int argc, string argv[])
{
int key;
需要在括号内
答案 1 :(得分:0)
这就是你的代码应该是这样的:
int main (int argc, string argv[])
{ // <-- every function definition begins with {
int key;
if (argc != 2)
{
printf("error\n");
}
else
{
key = atoi(argv[1]);
if (key == 0 || key < 0)
{
printf("error");
}
else
{
printf("%i\n", key);
}
}
}
你的问题是一个简单的描述错误,因此它可能应该被关闭。我发布了完整的代码,因为我无法在一条评论中显示此内容。
答案 2 :(得分:0)
将声明int key
移到main
的括号内。
然后将main的string argv[]
参数更改为char* argv[]
。对于string argv[]
签名,main
根本不正确。
您还需要包含stdio.h和stdlib.h。
您的代码如下所示:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char* argv[])
{
int key;
if (argc != 2)
{
printf("error\n");
}
else
{
key = atoi(argv[1]);
if (key == 0 || key < 0)
{
printf("error");
}
else
{
printf("%i\n", key);
}
}
}
已通过Coliru
验证