我是C ++的新手,我正在尝试构建这个非常简单的代码,但我不明白为什么会出现这个错误:
Error 1 error C2664: 'int scanf(const char *,...)' : cannot convert argument 1 from 'int' to 'const char *'
以下是代码:
// lab.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
int row = 0;
printf("Please enter the number of rows: ");
scanf('%d', &row);
printf("here is why you have entered %d", row);
return 0;
}
答案 0 :(得分:6)
将scanf('%d', &row);
更改为
scanf("%d", &row);
'%d'
是一个多字符文字,类型为int
。
"%d"
是一个字符串文字,与const char *
第一个参数所期望的scanf
兼容。
如果你传递单引号%d
,编译器会尝试从int
(类型'%d'
)到const char *
进行隐式转换(正如scanf所预期的那样)和将失败,因为没有这样的转换。
答案 1 :(得分:1)
希望你现在能理解你的错误。你用C语言而不是用C ++完成了这段代码。你需要包含标题iostream ......
#include<iostream>
using namespace std;
int main()
{
int row = 0;
cout<<"Please enter the number of rows: ";
cin>>row;
cout<<"entered value"<<row;
}
希望这会有所帮助..!