一、输入输出语法
1、使用方法
在C++中,cout用于输出内容到控制台,cin用于从控制台输入内容。
#include <iostream>
using namespace std;
int main()
{
int num;
cout<<"请输入一个数字:"<<endl;
cin>>num;
cout<<"您输入一个数字是:"<<num<<endl;
string str;
cout<<"请输入一段话:"<<endl;
cin>>str;
cout<<"您输入的话是:"<<str<<endl;
return 0;
}
输出结果:
请输入一个数字:
25
您输入一个数字是:25
请输入一段话:
您好!
您输入的话是:您好!
2、和printf()/scanf()的区别
1)cout和cin是类型安全的,会在编译时检查数据类型是否匹配;而printf()和scanf()是不安全的,需要开发人员自行确保格式化字符串与传入参数的类型匹配。
2)cout和cin可以通过重载实现更灵活的输出和输入操作;printf()和scanf()则需要根据格式化字符串来匹配参数类型。
综上所述,cout和cin更适合C++编程风格,提供了类型安全和更灵活的输入输出操作;而printf()和scanf()则更适合传统的C语言编程风格,使用起来更为灵活但需要开发人员自行确保数据类型匹配。
二、流程控制语句
流程控制和C语言一样。
1、goto语句使用方法:
在C++中,同样不推荐使用goto
语句,但如果你确实需要使用,可以按照以下方式进行:
- 标记位置: 在需要跳转的地方,使用标签(label)来标记位置。例如:
start: // 代码
- 跳转到标记: 使用
goto
语句跳转到标记位置。例如:goto start;
需要注意的是,尽量避免在C++中使用goto
语句,因为它会导致程序逻辑混乱、难以维护和调试。通常情况下,可以使用更结构化的控制语句(如if
、while
、for
等)来替代goto
语句。
代码示例:
#include <iostream>
using namespace std;
int main()
{
cout<<"1"<<endl;
goto FLAG;
cout<<"2"<<endl;
cout<<"3"<<endl;
cout<<"4"<<endl;
FLAG:
cout<<"5"<<endl;
return 0;
}
运行结果:
1
5
2、综合案例
《游戏说明》
1、系统生成一个1~100之间的随机数
2、用户输入一个数字,命名:num
3、比较两者的大小,输出三种结果。 您猜大啦 您猜小啦 您猜对啦
4、如果猜错了,可以一直猜,直到猜中为止
代码示例;
#include <iostream>
#include <stdio.h>
#include <random>
#include <chrono>
using namespace std;
int main()
{
//使用随机设备生成种子(使用时间戳,保证每次运行程序生成的随机数都不同)
// random_device rd;
mt19937 gen(std::chrono::system_clock::now().time_since_epoch().count());
// default_random_engine generator(std::chrono::system_clock::now().time_since_epoch().count());
//定义随机数分布范围
uniform_int_distribution<int> dis(1,100);
//生成随机数
int random_num = dis(gen);
//随机数判断
while(1)
{
int num = 0;
cout<<"请输入数字:"<<endl;
cin>>num;
if(num == random_num)
{
cout<<"输入数字等于随机数!"<<endl;
break;
}
else if(num > random_num)
{
cout<<"输入数字大于随机数!请重试"<<endl;
}
else
{
cout<<"输入数字小于随机数!请重试"<<endl;
}
}
return 0;
}
运行结果:
75
输入数字小于随机数!请重试
请输入数字:
85
输入数字小于随机数!请重试
请输入数字:
95
输入数字小于随机数!请重试
请输入数字:
100
输入数字大于随机数!请重试
请输入数字:
97
输入数字大于随机数!请重试
请输入数字:
96
输入数字等于随机数!