cin输入的问题

本文介绍了一个用于计算美国人口占世界人口百分比的C++程序,并讨论了异常输入处理方法。程序包含了从用户获取世界人口和美国人口数量的功能,通过标准输入输出进行交互。同时,文章还提供了对非正常输入的处理策略,确保程序在遇到错误输入时能够优雅地终止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>


int main(int argc,constchar * argv[]) {

    // insert code here...

    

    longlong population_us,population_world;

    

    std::cout <<"Enter the world's population : " ;

    std::cin >> population_world;

    std::cout <<"Enter the population of the US : " ;

    std::cin >> population_us;

    std::cout <<"The population of the US is " <<double(population_us) / double(population_world) *100 <<"% of the world population" <<std::endl;

    std::cout <<310783781.0/6898758899.0 <<std::endl;

    

    return0;

}


输入的时候:

Enter the world's population : 6898758899

Enter the population of the US : 310783781

The population of the US is 4.50492% of the world population

0.0450492

Program ended with exit code: 0

非正常输入:

Enter the world's population : 6898758899.0

Enter the population of the US : The population of the US is 0% of the world population

0.0450492

Program ended with exit code: 0

侥幸通过输入:

Enter the world's population : 6898758899

Enter the population of the US : 310783781.0

The population of the US is 4.50492% of the world population

0.0450492

Program ended with exit code: 0


问题疑问:

1.cin操作机制

2.如何去操作避免这种误输入


========================华丽的分割线,就是那么英俊========================

补充:

#include <iostream>


int main(int argc,const char * argv[]) {

    // insert code here...

    

    usingnamespace std;

    constint ArSize = 20;

    char name[ArSize];

    char dessert[ArSize];

    

    cout <<"Enter your name:\n";

    cin.getline(name, ArSize);

    cout <<"Enter your favorite dessert:\n";

    cin.getline(dessert, ArSize);

    cout <<"I have some delicious " << dessert;

    cout <<" for you, " << name << ".\n";

    

    return0;

}


正常输入:

Enter your name:

Dirk Hammernose

Enter your favorite dessert:

Radish Torte

I have some delicious Radish Torte for you, Dirk Hammernose.

Program ended with exit code: 0

非正常输入:

当我将ArSize 改成10的时候,name无法容纳那么多字符,出现问题

Enter your name:

Dirk Hammernose

Enter your favorite dessert:

I have some delicious  for you, Dirk Hamm.

Program ended with exit code: 0


========================华丽的分割线,就是那么英俊========================


int main(int argc, const char * argv[]) {

    // insert code here...

    

    using namespace std;

    const int ArSize = 10;

    char name[ArSize];

    char dessert[ArSize];

    

    cout << "Enter your name:\n";

    cin.get(name, ArSize).get();

    cout << "Enter your favorite dessert:\n";

    cin.get(dessert, ArSize).get();

    cout << "I hace some delicious " << dessert;

    cout << " for you, " << name << ".\n";

    

    return 0;

}


非正常输入:

Enter your name:

Mai Parfait

Enter your favorite dessert:

I hace some delicious tfor you, Mai Parfa.

Program ended with exit code: 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值