1. 程式人生 > 其它 >C++程式設計過程中小知識點記錄(持續更新)

C++程式設計過程中小知識點記錄(持續更新)

在學習C++的過程中,會碰到很多自己不熟悉的細碎的知識點,這裡記錄一下方便後續覆盤(持續更新);

1.對於scanf賦值語句而言,除了%c的格式符號外,其他的格式符號(如%d)的輸入是以空白符結尾的(即空格、換行/回車)為結束判斷標誌。

2.scanf的格式符號為%c時,可以讀入空格和換行符。

3.printf與scanf的格式符一般相對應。但對於double型別變數,printf時為%f,scanf時為%lf。

4.有一些編譯器中可能不支援gets(a)函式,此時可以用fgets函式解決。

#include<cstdio>

int main()
{
    char str[100];
    fgets(str,100,stdin);//同樣換行符也會讀入
}

/*
#include<cstdio>

int main()
{
    char str[100];
    gets(str);//同樣換行符也會讀入
}

*/

5.~操作符的含義是按位取反(二進位制位)。scanf函式的返回值是輸入值的個數,若沒有輸入值就是返回-1,-1的二進位制程式碼按位取反結果是0。在一些習題中,經常會遇到輸入資料不止一組的情況,此時利用scanf的此特性十分方便,舉例如下:

//即當沒有輸入資料時,程式就會自動終止
//在寫題目時十分有用
int n;
while(~scanf("%d",&n))//等價於scanf("%d",&n)!=EOF
{
    //
}

6.對於結構體而言,兩個型別相同的結構體變數是可以進行相互賦值的,舉例如下:

struct Matrix
{
    int value;
    int col;
};

int main()
{
    Matrix A;
    Matrix B;
    A.value = 0;
    A.col = 1;
    B.value = 2;
    B.col = 3;
    //A與B進行交換
    Matrix C;
    C = A;
    A = B;
    B = C
}

未完待續...............................................................................