c++中的这个错误怎么改initializing argument 1 of 'int scanf(const char*, ...)'?

如题所述

这个错误表示 scanf 函数的第一个参数应该是一个常量字符指针,而您正在初始化一个非常量字符数组或字符串。为了解决这个错误,请将字符数组或字符串声明为常量,例如:
const char *format = "%d";
scanf(format, &x);
或者:
char format[] = "%d";
scanf(format, &x);
这样,scanf 函数就可以正确读取数据了。追问

#include
using namespace std;
int main(){
int a,b;
printf("输入a,b(0>a,b>100):");
scanf(a,b);
jiafa(a,b);
return 0;
}
int jiafa(int a,int b){

return (a+b);
}
还是不能改

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-02-08
这个错误是因为在使用 scanf 函数读取输入数据时,传入的第一个参数不是一个格式字符串。你需要使用格式字符串,告诉 scanf 如何读取输入。
例如:
int a;
scanf("%d", &a);
在这个例子中,"%d" 是格式字符串,它告诉 scanf 读取一个整数。 &a 告诉 scanf 将读取的整数存储到变量 a 中。
第2个回答  2023-02-07
#include <iostream>
int main() {
int x;
std::cout << "Enter an integer: ";
scanf("%d", &x);
std::cout << "You entered: " << x << std::endl;
return 0;
}
第3个回答  2023-02-12
你scanf函数调用明显错误,你的第一个参数应该是输入格式字符串
相似回答
大家正在搜