【C++語法】C++快速入門筆記(1,2,3)之從一個程序說起
C語言版本
#include <stdio.h>
#include <stdlib.h>
int main()
{
??? int i;
?? ?int sum = 0;
?? ?char ch;
?? ?
?? ?printf("請輸入一串整數(shù)和任意數(shù)目的空格: ");
?? ?printf("\n");
?? ?
?? ?while (scanf("%d", &i) == 1)
?? ?{
?? ??? ?sum += i;
?? ??? ?while ((ch=getchar()) == ' ')? //屏蔽空格
?? ??? ??? ?;
?? ??? ?if (ch == '\n')
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?ungetc(ch, stdin);? //將變量ch中存放的字符返回給stdin輸入流
?? ?}
?? ?printf("結(jié)果是: %d", sum);
?? ?printf("\n");
?? ?//system("pause");??
}
C++版本
#include <iostream>
using namespace std;
int main()
{
?? ?int sum = 0;
?? ?
?? ?cout << "請輸入一串整數(shù)和任意數(shù)目的空格: " << endl;;
?? ?int i;
?? ?while (cin >> i)
?? ?{
?? ??? ?sum += i;
?? ??? ?while (cin.peek() == ' ')? //屏蔽空格
?? ??? ?{
?? ??? ??? ?cin.get();
?? ??? ?}
?? ??? ?if (cin.peek() == '\n')
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?cout << "結(jié)果是: " << sum << endl;??
}
1、使用了流對象cin, ">>"最初定義為右移操作符,對所有內(nèi)建的數(shù)據(jù)類型都進(jìn)行了重載,所以它可以從輸入流對象提取出int,float,double型數(shù)據(jù),也可以提取字符串等數(shù)據(jù).
2、cin? cout對象的多個方法
cin.ignore(n, ch);???? 忽略前n個字符
cin.getline(str, n, ch);???? 從輸入流從接收n個字符到str變量中,只能讀取一行的內(nèi)容
cin.peek();????? 取得輸入流中的第一個字符進(jìn)行其他操作如比較,但是不影響輸入流中的數(shù)據(jù)。
cin.get();???? 從輸入流中讀取一個字符,輸入流的數(shù)據(jù)被取走。
cin.gcount();???? 獲取一個字符變量中包括空白字符的個數(shù)
cin.read(buf, 20);???? 讀取前20個字符到buf中, 不限定行數(shù)直到到達(dá)結(jié)束標(biāo)志為止。
cout.precision(n);??? 設(shè)置精度為n????
cout.width();???????? 將顯示當(dāng)前的字段寬度,默認(rèn)為0,默認(rèn)是右對齊的方式,就是說如果當(dāng)前數(shù)據(jù)寬度不夠n那么剩余的位置就要在左端用空格補全。
cout.fill(ch);?????? 用ch來替代原有的填充字符
觀察發(fā)現(xiàn)兩個程序的不同之處:
c和c++事實上在聲明變量時有點不同,c++允許我們在程序的任意位置聲明變量.這大大提高了大型c++程序的可讀性,因為這樣我們就可以在實際需要使用變量的時候才來聲明他們.