单⽬操作符
前⾯介绍的操作符都是双⽬操作符,即有2个操作数。除此之外还有⼀些操作符只有⼀个操作数,被称为单⽬操作符。如 ++、–、+(正)、-(负) 就是单⽬操作符。
++和–
++是⼀种⾃增的操作符,⼜分为前置++和后置++,–是⼀种⾃减的操作符,也分为前置–和后置–
- 前置 ++ 或者后置 ++ ,都是让操作数⾃增1的
- 前置 – 或者后置 – ,都是让操作数⾃减1的
前置++和后置++
//案例1
int x = 10;
int a = ++x; //++的操作数是x,是放在x的前⾯的,就是前置++
cout << x << " " << a << endl;
//案例2
int x = 10;
int a = x++; //++的操作数是x,是放在x的后⾯的,就是后置++
cout << x << " " << a << endl;
前置++:先+1,后使⽤
后置++:先使⽤,后+1
前置–和后置–
//案例1
int y = 10;
int b = --y; //--的操作数是y,是放在y的前⾯的,就是前置--
cout << y << " " << b << endl;
//案例2
int y = 10;
int b = y--; //--的操作数是y,是放在y的后⾯的,就是后置--
cout << y << " " << b << endl;
前置–:先-1,后使⽤
后置–:先使⽤,后-1
+和-
这⾥的 + 是正号, - 是负号,都是单⽬操作符。
运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。
int a = +10; // 等价于 int a = 10;
运算符 - ⽤来改变⼀个值的正负号,负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会得到负数。
int a = 10;
int b = -a;
int c = -10;
cout << b << c << endl; // 这⾥的b和c都是-10
int a = -10;
int b = -a;
cout << b << endl; // 这⾥的b是10
C++输入输出
getchar和putchar
getchar() 和 putchar() 是属于C语⾔的库函数,C++是兼容C语⾔的,所以C++中只要正确包
含头⽂件也可以正常使⽤这两个函数。
getchar
函数原型如下:
int getchar ( void );
getchar() 函数返回用户从键盘输⼊的⼀个字符,使⽤时不带有任何参数。
程序运⾏到这个命令就会暂停,等待用户从键盘输⼊,等同于使⽤ cin 或 scanf() ⽅法读取⼀个字符。
它的原型定义在头⽂件 <cstdio>
。
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int ch;
ch = getchar();
cout << ch << endl;
cout << (char)ch << endl;
return 0;
}
getchar() 不会忽略起⾸的空⽩字符,总是返回当前读取的第⼀个字符,⽆论是否为空格。
如果读取失败,返回常量EOF ,由于EOF通常是 -1 ,所以返回值的类型要设为int ,⽽不是
char 。
如何让 getchar() 函数读取失败,返回-1呢?其实需要在输⼊字符之前,直接按Ctrl+z 就可
以。
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int ch;
ch = getchar();
cout << ch << endl;
return 0;
}
不输入任何字符之前,直接按ctrl+Z就使得getchar()函数读取失败
getchar()通常和putchar()是⼀对⼉,配合使⽤的。
putchar
函数原型如下:
int putchar( int character );
putchar() 函数将它的参数字符输出到屏幕,它的原型定义在头⽂件 <cstdio>
。
#include <cstdio>
int main()
{
int ch = 0;
ch = getchar();
putchar(ch);
return 0;
}
操作成功时, putchar() 返回输出的字符,否则返回常量EOF 。