C語言 實現簡單的printf功能

2021-10-08 01:38:26 字數 1186 閱讀 8436

#include

#include

#include

#define abs(x) (x < 0 ? x * -1 : x)

intprintf

(char

*fmt,..

.);char tem[

1024]=

;char

*p1,

*p2,

*p3,ch;

/*可變第一引數指向ap*/

va_start

(ap,fmt)

;/*複製格式化資料到buf*/

strcpy

(buf,fmt)

;/*將格式化資料寫到檔案*/

fputs

(fmt,fp)

;rewind

(fp)

; p1 = buf;

while

((ch =

fgetc

(fp))!=

eof)

len = ch ==

'c'?1:

strlen

(p2)

;/*格式字元長度*/

if(num >0&&

abs(num)

- len >0)

if(ch ==

'c')

*p1++

=va_arg

(ap,

int)

;/*字元型的插入*/

else

while

(*p2)

*p1++

=*p2++

;/*插入格式化字元*/

if(num <0&&

abs(num)

- len >0)

}else

}*p1 =

'\0'

;/* 末尾新增 '\0' */

fclose

(fp)

;/*關閉檔案*/

remove

("temp.txt");

/*刪除檔案*/

C語言實現簡單的HashTble

標頭檔案中的原始定義 ifndef helpsep h define mintablesize 1 typedef char elementtype struct listnode typedef struct listnode position struct hashtbl typedef str...

簡單echo server的C語言實現

下決心要重新梳理一下網路的相關知識,計畫要熟悉tcpdump工具以及linux網路程式設計,尤其是要把同步非同步,阻塞非阻塞那塊弄清楚,如果可能的話,熟悉一下libuv這樣的庫。本週參照網上資料的 實現了乙個簡單echo server,從socket中讀取資料並且寫回,用telnet測試後發現成功,...

C語言實現printf函式,即引數可變函式原理

我們在c語言程式設計中會遇到一些引數個數可變的函式,例如printf 這個函式,它的定義是這樣的 int printf const char format,它除了有乙個引數format固定以外,後面跟的引數的個數和型別是 可變的,例如我們可以有以下不同的呼叫方法 printf d i printf ...