【C++语法】C++快速入门笔记(1,2,3)之从一个程序说起
C语言版本
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int sum = 0;
char ch;
printf("请输入一串整数和任意数目的空格: ");
printf("\n");
while (scanf("%d", &i) == 1)
{
sum += i;
while ((ch=getchar()) == ' ') //屏蔽空格
;
if (ch == '\n')
{
break;
}
ungetc(ch, stdin); //将变量ch中存放的字符返回给stdin输入流
}
printf("结果是: %d", sum);
printf("\n");
//system("pause");
}
C++版本
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
cout << "请输入一串整数和任意数目的空格: " << endl;;
int i;
while (cin >> i)
{
sum += i;
while (cin.peek() == ' ') //屏蔽空格
{
cin.get();
}
if (cin.peek() == '\n')
{
break;
}
}
cout << "结果是: " << sum << endl;
}
1、使用了流对象cin, ">>"最初定义为右移操作符,对所有内建的数据类型都进行了重载,所以它可以从输入流对象提取出int,float,double型数据,也可以提取字符串等数据.
2、cin cout对象的多个方法
cin.ignore(n, ch); 忽略前n个字符
cin.getline(str, n, ch); 从输入流从接收n个字符到str变量中,只能读取一行的内容
cin.peek(); 取得输入流中的第一个字符进行其他操作如比较,但是不影响输入流中的数据。
cin.get(); 从输入流中读取一个字符,输入流的数据被取走。
cin.gcount(); 获取一个字符变量中包括空白字符的个数
cin.read(buf, 20); 读取前20个字符到buf中, 不限定行数直到到达结束标志为止。
cout.precision(n); 设置精度为n
cout.width(); 将显示当前的字段宽度,默认为0,默认是右对齐的方式,就是说如果当前数据宽度不够n那么剩余的位置就要在左端用空格补全。
cout.fill(ch); 用ch来替代原有的填充字符
观察发现两个程序的不同之处:
c和c++事实上在声明变量时有点不同,c++允许我们在程序的任意位置声明变量.这大大提高了大型c++程序的可读性,因为这样我们就可以在实际需要使用变量的时候才来声明他们.