格式 '%c' 需要类型为 'char' 的参数
Format '%c' expects argument of type 'char'
我收到的错误是:
program3.cpp:13:21: warning: format ‘%c’ expects argument of type ‘char*’, but argument 2 has type ‘std::string* {aka std::basic_string<char>*}’ [-Wformat=]
我可能缺乏关于c++语言的基本知识,我很抱歉(再一次)问了这个新手问题。此外,如果你能给我反馈或指出我代码中的其他缺陷,我将不胜感激。我的c++代码有什么问题?
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int harga=20000;
int diskon;
char pelanggan;
string jenisp;
printf("Apakah Pelanggan : [Y/N]");
scanf("%c",&pelanggan);
if(pelanggan=='Y'){
printf("Apa Jenis Pelanggan [Emas,Perak,Perunggu]:");
scanf("%c",&jenisp);
if(jenisp=="Emas"){
diskon=harga-(0.5*harga);
printf("Harga untuk pelanggan kartu Emas adalah : %d",diskon);
}
else if(jenisp=="Perak"){
diskon=harga-(0.25*harga);
printf("Harga untuk pelanggan kartu Perak adalah : %d",diskon);
}
else if(jenisp=="Perunggu"){
diskon=harga-(0.1*harga);
printf("Harga untuk pelanggan kartu Perunggu adalah : %d",diskon);
}
}
else{
printf("Harga untuk bukan pelanggan adalah : %d",harga);
}
return 0;
}
如错误信息所示,%c
在scanf
中除char*
参数外,将在那里存储一个字符。它不接受std::string*
使用此函数可能有助于学习。
std::string read_string() {
char buffer[10000]; // allocate enough memory
if(scanf("%9999s", buffer) == 1) {
// successfuly read something
return buffer;
} else {
return "";
}
}
要使用它,将此粘贴在int main()
之前,并用jenisp = read_string();
替换scanf("%c",&jenisp);
相关文章:
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 从 C# GUI 将 char * 参数传递给C++ dll 函数
- Swift Call C 方法带有char **参数,并且需要操作char **参数
- 使用"const char*"和"char*"参数连接两个第三方模块
- 将 char * 参数传递给 C# 函数
- 使用 char[] 参数通过 JNI 调用方法
- C# PInvoke - 返回 char* 和引用 char* 参数的函数
- 导出托管的C#函数将返回更改CHAR*参数为未托管的代码
- 即使在 Visual C++ 编译器中,在模板中传递 "const char" 参数也有些麻烦 2013 年 11 月 CTP
- 将'const char*'参数发送到接收'const char* &'的函数
- discover char*参数大小
- lambda接受“char”参数
- 在编译模板方面,char、有符号char或无符号char参数类型的函数重载
- 将类方法传递给const char*参数
- Atoi 仅返回 char* 参数的第一个数字
- 专门化模板成员函数来处理std::string和char[]参数
- 带有 char* 参数的 cout <<打印字符串,而不是指针值
- 带有char[]参数的c++模板
- GetModuleBaseName dosen't take char* 参数
- 以双精度数除以双精度数来获得循环中的余数和char参数不起作用