fqy131314

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;

 

计算完字符,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;

}

输入的是字母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;

}

posted on   会飞的鱼-blog  阅读(12)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示