15种 C++ 常见报错原因分析

 更新时间:2023年01月03日 14:25:20   作者:zeekliu  
这篇文章主要介绍了15种 C++ 常见报错,本文通过实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

本文整合了部分 C/C++ 常见的报错原因,可根据自己的情况,使用目录跳转。

1 重定义变量

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cin>>a;
	int a;
	cout<<a<<endl;
}

Error:redefinition of 'a'

改为:

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cin>>a;
	cout<<a<<endl;
}

2  缺少分号

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cout<<a<<endl
}

Error:expected ';' after expression

改为:

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cout<<a<<endl;
}

3 数组维数错误

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a[101][101];
	a[0]=1;
	cout<<a[0]<<endl;;
}

Error:array type 'int [101]' is not assignable

改为:

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a[101];
	a[0]=1;
	cout<<a[0]<<endl;;
}

4  关于 if 与 else

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cin>>a;
	if (a==1;) a=2;
}

Error:expected expression

Warning: equality comparison result unused [-Wunused-comparison]

if 判断里不能有分号!

改为:

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cin>>a;
	if (a==1) a=2;
}

5  关于 if 与 else

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cin>>a;
	if (a=1) a=2;
}

这个是把等号写成了赋值号

 Warning: using the result of an assignment as a condition without parentheses [-Wparentheses]

这个超级坑爹,因为不少编译器遇到这种问题有的还不报错,只是有Warning,而且看半天才能看出来

应改为:

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a;
	cin>>a;
	if (a==1) a=2;
}

6  括号匹配错误

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	int a[10];
	a[1=(a[1+1)*1);
	}
 
}

Error: expected ']'

Error: expected ']'

Error: extraneous closing brace ('}')

应改为:

#include <bits/stdc++.h>
using namespace std;
char c[101];
 
int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>c+1;
	return 0;
}

===========Upd: 22-05-19============

7  关于字符串的输入错误 (*)

#include <bits/stdc++.h>
using namespace std;
char c[101];
 
int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>c+1;
	return 0;
}

(MacOS⬇️⬇️⬇️)

Error:  invalid operands to binary expression ('std::istream' (aka 'basic_istream<char>') and 'char *')
        cin>>c+1;
        ~~~^ ~~~

Warning: operator '>>' has lower precedence than '+'; '+' will be evaluated first [-Wshift-op-parentheses]
        cin>>c+1;
           ~~~^~

和一堆 note:

Note: candidate function template not viable: no known conversion from 'std::istream' (aka 'basic_istream<char>') to 'std::byte' for 1st argument
  operator>> (byte  __lhs, _Integer __shift) noexcept
  ^

(这句话至少出现了50次)

那么为什么打*呢?

因为 Linux 系统编译通过!

Windows 尚未测试,有兴趣的小伙伴可以自测一下然后私信,欢迎私信~~~。

(这个问题源于我自己做题时,我看标准代码,不知为什么就是编译不对,结果提交以后就AC了?!)

8  写错函数 / 变量名

这个情况下,有时候编译器可能会猜测你要写的名字,比如:

#include <bits/stdc++.h>
using namespace std;
 
int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int a=1,b=2;
	mam(a,b);
	return 0;
}

Error: use of undeclared identifier 'mam'; did you mean 'max'?

如果编译器没有类似提示,就仔细想想应该是什么吧。

到此这篇关于15种 C++ 常见报错的文章就介绍到这了,更多相关C++ 常见报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++连接mysql数据库并读取数据的具体步骤

    C++连接mysql数据库并读取数据的具体步骤

    在实际开发中我们经常需要对数据库进行访问,针对不同类型的数据库(如MySQL、sqLite、Access、Excel等),如果采用不同的方法进行连接,会把我们搞崩溃,下面这篇文章主要给大家介绍了关于C++连接mysql数据库并读取数据的具体步骤,需要的朋友可以参考下
    2023-04-04
  • C语言实现学生成绩管理系统课程设计

    C语言实现学生成绩管理系统课程设计

    这篇文章主要为大家详细介绍了C语言实现学生成绩管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • C语言中的rand()和rand_r()详解

    C语言中的rand()和rand_r()详解

    这篇文章主要为大家介绍了C语言中的rand()和rand_r(),具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • C语言编写洗牌发牌程序

    C语言编写洗牌发牌程序

    这篇文章主要为大家详细介绍了C语言编写洗牌发牌程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C语言控制台版2048小游戏

    C语言控制台版2048小游戏

    本文给大家分享的是2则使用C语言控制台编写的2048小游戏,各有优劣,小伙伴们对比着参考下吧。
    2015-03-03
  • 在std::thread中创建并管理QEventLoop的全面解析

    在std::thread中创建并管理QEventLoop的全面解析

    QEventLoop的工作原理可以简单地理解为一个无限循环,它会不断地检查是否有新的事件需要处理,如果有,就将事件从事件队列中取出,然后找到相应的事件处理器进行处理,这篇文章主要介绍了在std::thread中创建并管理QEventLoop的全面指南,需要的朋友可以参考下
    2023-06-06
  • 深入理解C语言中使用频率较高的指针与数组

    深入理解C语言中使用频率较高的指针与数组

    在C语言中要说到哪一部分最难搞,首当其冲就是指针,指针永远是个让人又爱又恨的东西,用好了可以事半功倍,用不好就会有改不完的bug和通不完的宵,下面这篇文章主要给大家介绍了关于C语言中使用频率较高的指针与数组的相关资料,需要的朋友可以参考下
    2022-03-03
  • C++中默认无参构造函数的工作机制浅析

    C++中默认无参构造函数的工作机制浅析

    构造函数主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用;析构函数主要作用在于对象销毁前系统自动调用,执行一些清理工作
    2023-02-02
  • 基于C语言实现钻石棋游戏的示例代码

    基于C语言实现钻石棋游戏的示例代码

    独立钻石是源于18世纪法国的宫廷贵族的自我挑战类单人棋游戏,可以锻炼逻辑思维能力。本文将用C语言实现这一简单的游戏,感兴趣的小伙伴可以了解一下
    2023-02-02
  • c++ 快速排序算法【过程图解】

    c++ 快速排序算法【过程图解】

    下面小编就为大家带来一篇c++ 快速排序算法【过程图解】。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05

最新评论