大家好,目前在自學C語言
想請教以 putchar() 去替代printf()
如何向printf一樣 裡面可以用雙引號裡面輸入一些文字 代%c %d....等?
/* prog4_22, 使用getche()與getch()函數 */
#include <stdio.h>
#include <conio.h> /* 載入conio.h標頭檔 */
#include <stdlib.h>
int main(void)
{
char ch;
printf("請輸入一個字元: ");
ch=getche(); /* 利用getche()輸入字元 */
printf(" 您輸入的字元是: %c\n",ch); /*將prinft(""),改成putchar*/
putchar(ch); /*可是該如何跟printf() 一樣裡面可以輸入 "您輸入的字元是: %c\n"呢??*/
printf("請輸入一個字元: ");
ch=getch(); /* 利用getch()輸入一個字元 */
printf(" 您輸入的字元是: %c\n",ch);
system("pause");
return 0;
}
你應該去 stdio.h 去看 putchar()與 printf() 裡面的函數定義。
可以參考:
https://blog.csdn.net/u010785142/article/details/47261509
https://www.jianshu.com/p/8b67752df4ad
寫程式是要幫人解決問題,不是替自己找問題,如果你想要 putchar() 有 printf()的功能,
就改寫 stdio.h 或是自己寫一個函數。因為 C 與就是可以隨你想要怎麼寫? 但也要考慮後續
維護程式的問題。
有問題當然很好,但不要鑽牛角尖。
為什麼你認為 putchar() 就一定要跟 printf() 一樣呢?
為何要 putchar() 有 printf()功能呢? 卻只顯示一個字元呢?
可以喔...
putchar(c) is a macro defined to be putc(c, stdout).
例如VC的stdio.h中為
#define putchar(_c) putc((_c),stdout)
依樣畫葫蘆,可以在main()之前自己加一個macro
#define putchar(s,_c) printf(s,_c)
這樣就能於程式這樣寫
putchar(" 您輸入的字元是: %c\n",ch);
不過這個putchar只能提供輸入一個參數(printf是可以有無或多個)
如果 ch 是 int 前面就用 %d ... 依此類推
我只就可行性提供解答,沒有要想需不需要的問題