C++(常见错误总结1.4)

简介: C++(常见错误总结1.4)

1.变量名错误

变量名不能使用关键字

int  char;  //编译失败

变量名不能和函数名同名

int  system;  //会导致后面不能使用system函数



2.变量还没有定义,就直接使用

age = 20;

变量一定要先定义,再使用。



3.变量的输入与使用顺序不当

//以下为错误代码

#include<iostream>
#include<Windows.h>
using namespace std;
int main(void){
      int  age;
      int  num;
      num = age * 360;
      cout << "请输入您的年龄: ";
      cin >> age;
      cout << "这是您在地球的" << num <<"天" << endl;
      system("pause");
      return 0;
}


num = age * 360;



8b37c82dc78d4a3187aeabd8b49332f2.png


计算完字符,num和age没有任何关系!

而不是数学中的理解: num永远是age的360倍【不适用于C、C++】

4.数据输入时,数据的类型不匹配

#include<iostream>
#include<Windows.h>
using namespace std;
int main(void){
      int  age;
      int  num;
      cout << "请输入您的年龄: ";
      cin >> age;
      num = age * 360;
      cout << "这是您在地球的" << num <<"天" << endl;
      system("pause");
      return 0;
}


135c1105ba0e43cca0ab4f92174d5bb5.png


输入的是字母l0

类型不匹配,此时输入失败,变量的值还是原来的值


说明:

变量如果不做初始化,它的值是不确定的。

良好的编程习惯:变量在定义时,进行初始化:

int  age = 0;


5.输入数据时,前面的数据输入错误,导致后面的数据都不能输入

#include <iostream>
#include <Windows.h>
#include <string>
int main(void) {
      int a;
      int b;
      int c;
      std::cin >> a >> b >> c;
      std::cout << "a=" << a << std::endl;
      std::cout << "b=" << b << std::endl;
      std::cout << "c=" << c << std::endl;
      system("pause");
      return 0;
}

解决方案:

#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
int main(void) {
      int a;
      int b;
      int c;
      //std::cin >> a >> b >> c;
      std::cout << "请输入a: ";
      std::cin >> a;
      if (cin.fail()) { //检查输入时是否发生了错误
            cout << "输入错误,应该输入一个整数" << endl;
        //清除错误标记,使得后续输入可以正常进行
//但是已经输入的数据还在输入缓冲区
            cin.clear();            
cin.sync(); //清空输入缓冲区
      }
      std::cout << "请输入b: ";
      std::cin >> b;
      if (cin.fail()) {
            cout << "输入错误,应该输入一个整数" << endl;
            cin.clear(); //清除错误标记,使得后续输入可以正常进行
            cin.sync(); //清空输入缓冲区
      }
      std::cout << "请输入c: ";
      std::cin >> c;
      if (cin.fail()) {
            cout << "输入错误,应该输入一个整数" << endl;
            cin.clear(); //清除错误标记,使得后续输入可以正常进行
            cin.sync();//清空输入缓冲区
      }
      std::cout << "a=" << a << std::endl;
      std::cout << "b=" << b << std::endl;
      std::cout << "c=" << c << std::endl;
      system("pause");
      return 0;
}


相关文章
|
3月前
|
安全 程序员 编译器
【实战经验】17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
351 12
|
安全 编译器 C语言
C++——常见错误总结1.4
C++——常见错误总结1.4
|
安全 C++ Windows
C++(常见错误总结1.2,1.3)
C++(常见错误总结1.2,1.3)
|
存储 程序员 C++
C++(常见错误总结1)
C++(常见错误总结1)
BXA
|
C++
C++使用中需要避免的10个常见错误
C++使用中需要避免的10个常见错误
BXA
246 0
|
编译器 Android开发 C++
工作中遇到的C++语言基础和常见错误
## C++历史及标准 这里简单列一下```C++```发展进程中的几次重大事件以及我常使用的典型特性,各个标准支持的具体细节可参阅ISO标准文档。 - ```C With Classes```:支持C++基础语言特性,包括多态、异常处理、模板、命名空间等 - ```C++98```:STL、RTTI、模板、异常处理及其它标准库实现 - ```C++03```:修复C++98中的缺
1136 0
|
存储 C++
【C++初级】static用法总结、问题探讨及常见错误排查
static的基本用法: static的作用主要有两种第一个作用是限定作用域;第二个作用是保持变量内容持久化; 一、c语言中static的用法:   1、全局静态变量:     用法:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。
1694 0
|
C++
C++常见错误坑洞
指针没初始化就使用*解引用运算符; 连续delete释放new指针; 使用delete 是否常规普通变量内存; 地址直接复制给制作   
637 0
|
分布式计算 Java Hadoop
hadoop-HA集群搭建,启动DataNode,检测启动状态,执行HDFS命令,启动YARN,HDFS权限配置,C++客户端编程,常见错误
本篇博文为整理网络上Hadoop-HA搭建后出来的博客,参考网址为:http://blog.chinaunix.net/uid-196700-id-5751309.html 3. 部署 3.1. 机器列表 共5台机器(zookeeper部署在这5台机器上),部署如下表所示: NameNode JournalNode DataNode ZooKeeper 192.168.106
8093 0