c語言基礎的一些小技巧

natureworld2010發表於2020-09-26

1. 使用EOF迴圈輸入,並輸出數字個數

EOF的意思是End Of File是檔案尾的標誌。在數值上來說就是-1。當在檔案操作的時候,碰到檔案結束,或者資料讀取錯誤是均會返回EOF。在linux作業系統下ctrl+d就可以產生EOF,而windows下是ctrl+z。

int printf(const char *forma, ...)的返回值是輸出字元的數量。 ...表示可變引數列表。

2. 異或正規表示式讀入含空格字串。

scanf("%[^\n]", s);表示讀入非\n的字元資料流。

 

3. sprintf和fprintf的使用

注意需要加\反斜槓連線符。以及涉及到&位運算的使用。比如n = 7, n &4 就是111 & 100 結果是100. 需要注意輸出到stderr無標準錯誤輸出重定向,有stdout的標準輸出重定向到檔案。比如./a.out > output 輸出到檔案中stdout = xx的結果。而stderr的結果仍然列印到螢幕。

 

4. 使用acos()得到pi的值

 

5. 運算子和按位取反~ 和異或^

 

6. inttypes標頭檔案

c++ reference標準文件手冊。

可以查詢cpp reference文件手冊

連結:https://zh.cppreference.com/w

外文連結:https://en.cppreference.com/w/

c reference 型別支援。c大概30多個標頭檔案,比如有個inttypes.h的標頭檔案。

c語言中支援bool型別。

stdbool.h c語言從c99支援bool型別。.c檔案中#include <stdbool.h>

int32_t a 和int a的區別。int定義的變數在64位中為4位元組,32位作業系統中int為2位元組,因此程式會有可移植性的問題。引入#include <inttypes.h>,可以定義固定位元組的int型別,比如,int32_t, 可以統一型別。格式佔位符,可以通過PRId32,PRId64,PRId16,PRId8,這個PRIdx是個巨集,可以根據不同的系統改變。例如查詢格式佔位符,printf("%s\n",PRId32);結果顯示輸出d,PRId32輸出lld。

printf("%" PRId32 "\n", a);

-128按位取反還是-128.

正數8位整型符號位0佔1位,2^8 - 1,為最大值01111111,按位取反再加1得到-127為10000001,-127減去1可以得到10000000為-128為最小值。

 

相關文章