#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中\
这里会等待用户输入,输入回车键结束等待,然后读取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);
}