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 2022-10-11 16:02  会飞的鱼-blog  阅读(62)  评论(0)    收藏  举报  来源

导航