30.10.2014 Views

o_195h4n6al16jb186b1b2qs7fgssa.pdf

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

else if (*fmt == 's')<br />

{<br />

char *s = va_arg(ap, char*);<br />

printf(" is a string\n", s);<br />

}<br />

else<br />

{<br />

printf("%%%c is an unknown format\n",<br />

*fmt);<br />

}<br />

fmt++;<br />

break;<br />

default:<br />

printf("%c is unknown\n", *fmt);<br />

fmt++;<br />

break;<br />

}<br />

}<br />

va_end(ap);<br />

}<br />

int main(void)<br />

{<br />

tprint("%d%s.%c", 83, "This is text.", 'a');<br />

}<br />

Output:<br />

is an integer<br />

is a string<br />

. is unknown<br />

%c is an unknown format<br />

va_arg (Continued)<br />

Standard C Libraries with Math Functions<br />

2004 Microchip Technology Inc. DS51456B-page 223<br />

4.12 COMMON DEFINITIONS<br />

The header file stddef.hconsists of several types and macros that are of general<br />

use<br />

in programs.<br />

va_end<br />

Description: Ends the use of ap.<br />

bất động sản để cho phép đọc và viết các tập tin.<br />

Streams có thể dòng văn bản hoặc dòng nhị phân. Dòng văn bản bao gồm một<br />

chuỗi các<br />

nhân vật chia thành dòng. Mỗi dòng được kết thúc bằng một dòng mới ('\ n')<br />

nhân vật.<br />

Các nhân vật có thể được thay đổi trong internalrepresentation của họ, đặc biệt<br />

là liên quan đến<br />

kết thúc dòng. Dòng nhị phân bao gồm chuỗi các byte thông tin. Các byte<br />

chuyển đến các dòng nhị phân không altered.There có khái niệm về dòng, tập<br />

tin là<br />

chỉ là một loạt các byte.<br />

Khi khởi động ba dòng sẽ được tự động mở ra: stdin, stdout, và stderr.<br />

stdinprovides một dòng cho đầu vào tiêu chuẩn, stdoutis đầu ra tiêu chuẩn và<br />

thiết bị lỗi chuẩn<br />

là sai số chuẩn. Dòng bổ sung có thể được tạo ra với fopenfunction. Xem<br />

fopenfor các loại khác nhau của tập tin truy cập được phép. Những loại truy cập<br />

được<br />

được sử dụng bởi fopenand freopen.<br />

Các FILEis loại được sử dụng để lưu trữ thông tin về mỗi dòng mở tập tin. Nó<br />

bao gồm<br />

những thứ như chỉ số lỗi, cuối cùng các chỉ số tập tin, thị vị trí của tập tin, và<br />

các<br />

tình trạng thông tin nội bộ cần thiết để kiểm soát một dòng suối. Nhiều chức<br />

năng trong stdio<br />

sử dụng FILEas một cuộc tranh cãi.<br />

Có ba loại đệm: bộ đệm, dòng đệm và đệm đầy đủ. Unbuffered có nghĩa là một<br />

nhân vật hay byte được chuyển giao tại một thời điểm. Dòng đệm và thu thập<br />

những<br />

chuyển toàn bộ một dòng một lúc (ví dụ, các ký tự xuống dòng cho biết kết thú<br />

của một dòng.)<br />

Đệm đầy đủ cho phép các khối kích thước tùy ý được truyền đi. Các chức năng<br />

setbufand tập setvbufcontrol đệm.<br />

Các stdio.hfile cũng chứa các chức năng sử dụng các định dạng đầu vào và đầu<br />

ra. Các đầu vào<br />

định dạng, hoặc các định dạng quét, được sử dụng để đọc dữ liệu. Mô tả của họ<br />

có thể được tìm thấy<br />

dưới scanf, nhưng họ cũng được sử dụng bởi sscanf fscanfand. Các định dạng<br />

đầu ra, hoặc<br />

định dạng in ấn, được sử dụng để ghi dữ liệu. Mô tả của họ có thể được tìm thấy<br />

dưới printf.<br />

Các định dạng in ấn cũng được sử dụng bởi fprintf, sprintf, vfprintf, vprintfand<br />

vsprintf.<br />

Một số tùy chọn trình biên dịch có thể ảnh hưởng đến cách tiêu chuẩn I / O thực<br />

hiện. Trong một nỗ lực để cung cấp<br />

một phiên bản phù hợp hơn của thói quen định dạng I / O, dây chuyền công cụ<br />

có thể chuyển đổi một cuộc gọi<br />

đến một chức năng scanfstyle printfor một cuộc gọi khác nhau. Các tùy chọn<br />

được tóm tắt<br />

dưới đây:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!