#include<stdio.h>
#include<string.h>
void p(char );
void printnum(long n, void (*p)(char) ) ;
int main()
{
long n;
char ch=92;//這個數字對應與ASCII值,沒有對應的就不會輸出字元;
//char型字元用單引号‘’表示一個(int型的)ASCII值,\
雙引号“ ”表示char*指針
char buf[128]="asdfgh";
char str[128]={0};
char temp[128]={0};
printf("input a num %lu:",sizeof(long));
scanf("%ld",&n);
// printf("%c\n",getchar());//吸收stdin裡面的回車符
getchar();
//吸收stdin裡面的回車符
printf("possion1 \n");
printf("input a string:");
fgets(str,128,stdin);//從stdin标準輸入流中讀入最大128位元組内容放入str中\
讀取以'\n'結尾的一行(包括'\n'在内)存到緩沖區str中\
這裡會等待使用者輸入,輸入Enter鍵結束等待,然後讀取stdin裡内容到str中
sscanf(str,"%[^\n]",temp);
// printf("%s",str); //這裡不直接列印str.是有原因的,這個很重要!
printf("%s",temp);
printnum(n,p) ;//列印數字
printf("%c",10);
puts(buf);
fputs(buf,stdout);
putc(ch,stdout);
putchar(ch);
putchar(10);
printf("possion2 \n");
printf("###%d",putchar(ch));
}
void printnum(long n, void (*p)(char ch))
{
if(n < 0)
{
(*p)('-');
n = -n;
}
if(n >= 10)
printnum(n / 10, p);
(*p)("0123456789"[n % 10]);
}
void p(char ch)
{
printf("%c",ch);
}