提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
C++基础(四):输入与输出
一、C++程序结构和C++语句
一个程序包含一个或多个程序单位(每个程序单位构成一个程序文件)。每个程序单位由以下三个部分组成。
- 预处理指令。如#include和#define。
- 全局声明。在函数外对数据类型、函数以及变量的声明和定义。
- 函数。包括函数首部和函数体,在函数中可以包含声明语句和执行语句。
一个完整的C++程序举例:
#include <iostream> //预处理指令
using namespace std; //函数之外的全局声明
int a = 3; //函数之外的全局声明
int main() //函数首部
{
float b; //函数内的声明
b = 4.5; //执行语句
cout<<a<<b; //执行语句
return 0;
}
**如果一个变量是在函数之外进行声明的,此变量是全局变量。**它的有效范围是从该行开始,知道本程序单位结束。如果一个函数是在函数内声明的,此变量是局部变量。它的有效范围是从该行开始知道本函数结束。
1、C++语句
C++\语句可以分为四类。
1.1声明语句
如 int a,b;
。
1.2执行语句
通知计算机完成一定的操作。包括
1、控住语句。
- if() ~ else ~ (条件控制语句)
- for() ~ (循环语句)
- while() ~ (循环语句)
- do ~ while ~ (循环语句)
- continue (结束本次循环语句)
- break (中止执行switch或循环语句)
- switch (多分支循环语句)
- goto (转向语句)
- return (从函数返回语句)
**2、函数和流调用语句。**函数调用语句由一次函数调用加一个分号构成一个语句,例如
sort(x,y,z);
cout<<x<<endl; //流对象调用语句
**3、表达式语句。**由一个表达式加一个分号构成,最典型的是:由赋值表达式构成一个赋值语句。
i = i+1;
1.3空语句
只有一个分号的语句,它什么也不做。
1.4复合语句
用{ }括起来的语句称为复合语句。
二、C++的输入与输出
1、cin和cout的基本操作
**c语言中,输入和输出的功能是通过调用scanf函数和printf函数来实现的;在C++中是调用输入输出流库中的流对象cin和cout实现的。**也就是说输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。
cin语句的一般表达:
cin>>变量1>>变量2>>…>>变量n;
cout语句的一般表达式:
cout<<表达式1<<表达式2<<…<<表达式n;
注意:在用cin输入时,系统会根据变量的类型从输入流中提取相长度的字节。例如
char c1,c2;
int a;
float b;
cin>>c1>>c2>>a>>b;
如果输入1234 56.78。系统会取第一个字符‘1’给字符变量c1,取第二个字符‘2’给字符变量c2,再取34给整型变量a,最后再取56.78给实行变量56.78。
如果输入 1 2 34 56.78.系统会把‘1’和‘2’中间的空格作为数据间的分隔符不予提取。 由此可知:不能用cin语句将空格字符和回车换行符作为输入给字符变量,它们将被跳过。如果想将空格或回车输入给字符变量,可以用getchar函数。
2、用getchar和putchar函数进行输入输出
getchar函数(字符输入函数)
次函数的作用是从终端输入一个字符,getchar函数没有参数,其一般形式为getchar()。注意:getchar()只能接收一个字符。
输入单个字符:
#include <iostream>
using namespace std;
int main()
{
char c;
c=getchar();
putchar(c+32);putchar('\n);
return 0;
}
运行结果:
A //输入A
a
putchar函数(字符输出函数)
putchar函数,作用是向终端输出一个字符。
#include <iostream>
using namespace std;
int main()
{
char a,b,c;
a='B';b='O';c='Y'
putchar(a);putchar(b);putchar(c);putchar('\n');
putchar(66);putchar(79);putchar(89);putchar(10);
return 0;
}
运行结果:
BOY
BOY
3、用scanf和printf函数进行输入输出
scanf函数一般格式:scanf(“格式控制”,输入列表);
printf函数一般格式 :printf(“格式控制”,输出列表);
#include <iostream>
using namespace std;
int main()
{
int a;
float b;
char c;
scanf("%d %f %c" ,&a,&b,&c);
printf("a=%d,b=%f,c=%c\n" ,&a,&b,&c);
return 0 ;
}
运行结果:
12 78.56 F
a=12,b=78.56,c=F
C++保留scanf和printf函数只是为了和C语言兼容,进行输入输出时数据的类型和格式,不仅繁琐而且容易出错。