C程式語言 檔案 位運算

2021-08-19 08:38:31 字數 1982 閱讀 6339

標籤(空格分隔): 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,則該位...