字符輸出函數putchar?
????int putchar(int c)?
函數參數:c為字符常量或表達式
函數返回值:輸出的字符
函數功能:在標準輸出上顯示一個字符
格式化輸出函數printf
int printf (const char *format, …),成功返回輸出的字節數,失敗返回-1(EOF)
字符輸入函數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, …),成功返回輸入的變量的個數,失敗返回-1(EOF)? ?
????輸入數據時,遇到以下情況認為該數據結束:
????-??空格、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的數字;失敗返回-1或EOF
????????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,則多余的符號也會被存到字符數組中,這樣就會造成內 ? ? ? ? 存的訪問越界,結果是不可預料的。所以,使用此函數時,會有警告。我們在使用該函數時, ? ? ? ? 一定要注意數組的長度。
? ? ? ?
??
轉載于:https://blog.51cto.com/sjgwyy/1829324