標籤(空格分隔): c
12.1.1 檔案:格式化輸入輸出
格式化的輸入輸出
flag含義-
左對齊+
在前面放 + 或 -
(space)
正數留空
00填充
width或prec
含義number
最小字元數
*下乙個引數是字元數
.number
小數點後的位數
.*下乙個引數是小數點後的位數
型別修飾
含義hh
單個位元組
hshort
llong
lllong long
llong double
type
用於i或d
intu
unsigned int
o八進位制
x十六進製制
x字母大寫的十六進製制
f或ffloat,6
e或e指數
gfloat
gfloat
a或a十六進製制浮點
cchar
s字串p指標
n讀入/寫出的個數
flag含義*
跳過數字
最大字元數
hhchar
hshort
llong, double
lllong long
llong double
type用於d
inti
整數,可能為十六進製制或八進位制
uunsigned int
o八進位制
x十六進製制
x字母大寫的十六進製制
a,e,f,g
float
cchar
s字串(單詞)
[^]所允許的字元p指標
printf和scanf的返回值
12.1.2 檔案:檔案輸入輸出
檔案輸入輸出
file
開啟檔案的標準**
file* fp = fopen("file", "r");
if (fp) else
fopen
r開啟唯讀
r+開啟讀寫,從頭檔案開始
w開啟只寫。如果不存在則新建,如果存在則清空
w+開啟讀寫。如果不存在則新建,如果存在則清空
a開啟追加。如果不存在則新建,如果存在則從檔案尾開始
..x只新建,如果檔案已存在則不能開啟
12.1.3 檔案:二進位制檔案
二進位制檔案
而二進位制檔案是需要專門的程式來讀寫的檔案
文字檔案的輸入輸出是格式化,可能經過轉碼
文字vs二進位制
windows喜歡用二進位制檔案
文字的優勢是方便人類讀寫,而且跨平台
文字的缺點是程式輸入輸出要經過格式化,開銷大
二進位制的缺點是人類讀寫困難,而且不跨平台
二進位制的優點是程式讀寫快
程式為什麼要檔案
資料 **
現實是,程式通過第三方庫來讀寫檔案,很少直接讀寫二進位制檔案了
可移植性
解決方案之一是放棄使用int,而是typedef具有明確大小的型別
更好的方案是用文字
12.2.1 位運算:按位運算
按位運算
按位與 &
按位或 |
按位取反 ~
邏輯運算vs按位運算
按位異或^
12.2.2 位運算:移位運算
左移 <<
右移 >>
12.2.3 位運算:位段
位段
struct ;
編譯器會安排其中的位的排列,不具有可移植性
當所需的位超過乙個int時會採用多個int
c語言位運算
c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對乙個二進位制數按位取反,即將0變1...
C語言位運算
c語言位運算 位運算應用口訣 清零取反要用與,某位置一可用或 若要取反和交換,輕輕鬆鬆用異或 移位運算 1 它們都是雙目運算子,兩個運算分量都是整形,結果也是整形。2 am p 3 amp amp amp qu ot 右 移 右邊 的位被擠 掉。對於 左邊移出 的空位,如果是正 數則空位 補0,若 ...
C語言位運算
位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...