天天看点

fgetc, fgets, getc, getchar, gets,

#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);

}

继续阅读