字符輸出函數putchar?

????int putchar(int c)?

函數參數:c為字符常量或表達式

函數返回值:輸出的字符

函數功能:在標準輸出上顯示一個字符


格式化輸出函數printf

int printf (const char *format, ),成功返回輸出的字節數,失敗返回-1EOF


字符輸入函數getchar

????????int getchar(void)

????返回值的含義是存儲從鍵盤上讀取的字符,返回值的類型確是int,而不是char?

????int main()

????{

????????int ch;

????????printf("Enter a character:");

????????while ((ch = getchar()) != EOF)

????????????printf?("%c--->%#x\n", ch, ch);

????????printf?("end main\n");

????????return 0;

????}

格式化輸入函數scanf

????????int scanf (const char *format, ),成功返回輸入的變量的個數,失敗返回-1EOF)? ?

????輸入數據時,遇到以下情況認為該數據結束:

????-??空格、TAB或回車

????-??寬度結束

????-??非法輸入

????非法輸入,比如:程序需要輸入一個浮點數,用戶輸入的是字母,這就屬性非法輸入

????返回值是成功輸入的變量的個數,當遇到非法輸入時,返回值會小于實際變量個數?

????int main()

????{

????????int a, b, n;

????????printf("input numbers:");

????????while ((n = scanf("%d%d", &a, &b)) == 2)

????????{

????????????printf("a=%d, b=%d\n", a, b);

????????????printf("input numbers:");

????????}

????????printf("n=%d\n", n);

?????????return 0;

????}


字符串輸入輸出函數

????1.字符串輸出函數 puts

????????????int puts(const char *s),在標準輸出上顯示字符串s,成功返回一個非0的數字;失敗返回-1EOF

????????int main()

????????{

????????????char s[]="welcome";

????????????puts(s);? ??

?????????????return 0;

????????}

????2.字符串輸入函數gets?? ?

??????char *gets(char *s)

??????功能:從鍵盤輸入一以回車結束的字符串放入字符數組中,并自動加'\0'

??????成功返回字符數組的起始地址,失敗或輸入結束返回NULL

????????#define N 20

????????int main()

????????{

????????????int i = 0;

????????????char s[N] = {0};

?????????

????????????printf(">");

????????????while (gets(s) != NULL)

????????????{

????????????????printf(">");

???????????????// scanf("%s", s);

????????????????printf("i = %d :%s\n", i, s);

????????????????i++;

????????????}

?????????

????????????printf("end main\n");

????????????return 0;

????????}

???????gets函數的參數中,不含長度控制。當輸入字符時,最多只能輸入N-1(留一個位置存字符串的 ? ? ? ? 結束符\0)。假如輸入字符超過了N-1,則多余的符號也會被存到字符數組中,這樣就會造成內 ? ? ? ? 存的訪問越界,結果是不可預料的。所以,使用此函數時,會有警告。我們在使用該函數時, ? ? ? ? 一定要注意數組的長度。

? ? ? ?

??