Jimmy0329 2023-04-30 15:53 采纳率: 72.7%
浏览 13
已结题

关于#c++#的问题,如何解决?

今天随便写了一个诺基亚模拟程序,竟然报了这么多错:

1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(5,16): error C2440: “初始化”: 无法从“const char [39]”转换为“char”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(5,16): message : 没有使该转换得以执行的上下文
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(6,1): error C2143: 语法错误: 缺少“;”(在“const”的前面)
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(6,89): error C2117: “applist”: 数组界限溢出
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(6,12): message : 参见“applist”的声明
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(6,12): error C2078: 初始值设定项太多
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(7,19): error C2015: 常量中的字符太多
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(7,28): error C2015: 常量中的字符太多
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(8,1): error C2144: 语法错误:“void”的前面应有“;”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(8,29): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(10,20): error C2440: “初始化”: 无法从“const char [3]”转换为“char”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(10,20): message : 原因如下: 无法从“const char [3]”转换为“char”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(10,21): message : 在此上下文中不允许从“const char [3]”转换为“char”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(11,5): error C2146: 语法错误: 缺少“;”(在标识符“scanf_s”的前面)
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(11,5): error C2664: “int scanf_s(const char *const ,...)”: 无法将参数 1 从“const char”转换为“const char *const ”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(11,13): message : 从整型类型转换为指针类型需要 reinterpret_cast、C 样式转换或带圆括号的函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt\stdio.h(1313,41): message : 参见“scanf_s”的声明
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(11,5): message : 尝试匹配参数列表“(const char, char)”时
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(13,10): error C2440: “类型强制转换”: 无法从“const char [15]”转换为“int”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(13,10): message : 没有使该转换得以执行的上下文
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(13,5): error C2046: 非法的 case
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(14,9): error C2143: 语法错误: 缺少“;”(在“}”的前面)
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(18,1): warning C4508: “nokiamain”: 函数应返回一个值;假定“void”返回类型
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(17,5): warning C4065: switch 语句包含“default”但是未包含“case”标签
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(23,5): error C4496: 使用了非标准扩展“for each”: 替换为 ranged-for 语句
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(23,45): error C2059: 语法错误:“]”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(23,48): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(24,13): error C2065: “username”: 未声明的标识符
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(25,20): error C2065: “username”: 未声明的标识符
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(26,9): error C2143: 语法错误: 缺少“;”(在“}”的前面)
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(29,5): error C2143: 语法错误: 缺少“;”(在“}”的前面)
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(28,14): error C2440: “return”: 无法从“const char [9]”转换为“char”
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(28,14): message : 没有使该转换得以执行的上下文
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(31,5): error C2601: “main”: 本地函数定义是非法的
1>C:\Users\Administrator\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(39,1): fatal  error C1004: 发现意外的文件尾
1>已完成生成项目“ConsoleApplication2.vcxproj”的操作 - 失败。

这是代码:

#include <iostream>
#include <string>
using namespace std;
#define EMPLOYEEMANAGE { cout<<'this app has those function:/n'}
const char ASK="what app you want to use today ? \a\n %d"
const char applist[11] = { "EMPLOYEEMANAGE"," " ," " ," " ," " ," " ," " ," " ," " ," " }\
, userlist[5] = { 'jimmy', 'william' }
void nokiamain(string user) {
    cout << "hello " << user << " !" << endl;
    char appname = {"/0"}
    scanf_s(ASK ,appname);
    switch (appname){
    case "EMPLOYEEMANAGE":
        EMPLOYEEMANAGE break;
    default:
        break;
    }
};
char nokialogin(string list_of_user[5]) {
    cout << "enter username:";
    char holder{ ' ' };
    cin >> holder;
    for each (char username in list_of_user[]) {
        if (username == holder) {
            return username
        }
    }
      return "notfound"
    }

int main()
{
    a= nokialogin(userlist[1:5])
    if (a = !"notfound") {
        nokiamain(a)
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-30 18:06
    关注
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7615223
    • 你也可以参考下这篇文章:c++中初始化列表初始化顺序和变量的声明顺序一致(初始化列表的构造顺序)
    • 除此之外, 这篇博客: 【c++复习笔记】——多态详细解析,多态的原理,多态的笔试题中的 ,参数是基类对象不行? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
      •      如果是调用是基类对象,那么当派生类給传值給多态函数的时候,只会将派生类的成员赋值給临时对象,不会把虚表指针給赋值过去,因为基类对象包含的虚表指针都是一样的。不会因为你是派生类构造出来的基类,虚表指针就是派生类虚表。因此传值是不会构成多态的。 

      多态函数的参数是传对象:

       

      •  如果是参数是基类指针,那么通过派生类的指针构造出来的基类的指针,能够访问到派生类的虚表的指针。 

       

    • 您还可以看一下 王健伟老师的C++语言基础到进阶课程中的 类型转换构造函数、运算符,类成员指针小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      很遗憾,根据您提供的参考资料和代码展示,无法准确推测出您的代码出现问题的原因。建议您在调试代码时,注意查看编译器的报错信息,定位错误,并尝试逐步调试和排查代码。另外,您可以将出现问题的代码段提供出来,进行更加具体的分析和解决方案的讨论。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 4月30日

悬赏问题

  • ¥15 在rhel8中安装qemu-kvm时遇到“cannot initialize crypto:unable to initialize gcrypt“报错”
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 paddle库安装时报错提示需要安装common、dual等库,安装了上面的库以后还是显示报错未安装,要怎么办呀?
  • ¥20 找能定制Python脚本的
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?
  • ¥300 寻抓云闪付tn组成网页付款链接