gpt4 book ai didi

C++ --- 错误 C2664 : 'int scanf(const char *,...)' : cannot convert argument 1 from 'int' to 'const char *'

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:25 25 4
gpt4 key购买 nike

我是 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;
}

最佳答案

scanf('%d', &row); 更改为

scanf("%d", &row);

'%d' 是一个多字 rune 字,类型为 int

另一方面,

"%d" 是一个字符串文字,它首先与 scanf 预期的 const char * 兼容争论。

如果您传递单引号 %d,编译器将尝试从 int('%d' 的类型)进行隐式转换转换为 const char *(正如 scanf 所期望的那样),并且会因为不存在此类转换而失败。

关于C++ --- 错误 C2664 : 'int scanf(const char *,...)' : cannot convert argument 1 from 'int' to 'const char *' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com