C语言实践总结

2022-06-14 08:36:41 浏览数 (1)

1printf (formmat,.....)等价于fprintf(stdout,formmat,.....)或者fprintf(sterror,formmat,.....)

 在C语言中,stdin stdout stderror 三个标准输入输入,stdou输出到屏幕有缓冲,stderror 输出的屏幕没有缓冲。这三个标准输入输出相当于三个设备文件,可以读写。(系统在初始化话后一句open好了,不需要再open了)

类似的fprintf(stream *file ,formmat,.....)中的fprintf(sterror,formmat,.....)等价于printf (formmat,.....)

fscanf(stream *file ,formmat,.....)中的fscanf(stdin,formmat,.....)等价scanf(frommat,....)

fgets(stream *file,formmat,.....)中的fgets(stdin,formmat,.....)等价于gets(string)

fgetc(stream *file,formmat,.....)中的fgetc(stdin,formmat,.....)等价于getchar()

fputs(stream *file,formmat,.....)中的fgets(stout,formmat,.....)等价于puts(string)

fputc(stream *file,formmat,.....)中的fputc(stdin,formmat,.....)等价于putc()

2.getchar getc ,getche getch区别

  getchar 是getc 的宏定义,有缓冲,有回显。getc 有时fgetc的宏定义。

  getche  无缓冲,有回显

  getchar 无缓冲,无回显

 缓冲的概念是:敲一串字符串后,必需按回车键,输入流才进入缓冲buf,此后只有buf有数据,系统会自动读,不需要回车。这也是敲了一连串字符串回车后,getchar可以循环读取多个字符。

 getche 没缓冲,只要按键按下去,就可以读取字符,不需要回车,但有回显。

类似的 putchar putc putche 。

2.sprintf的常用方法:将一个格式化后字符串输入到另一个字符串

1).用来字符串转换

     int  k=124;

    char buf[100];

    sprintf(buf,"%s",k);

等于与itoa(k)类似的还有 ltoa() litoa() ulta().

toascii()(只是将ascII字符转换成字符。

2).连接字符串 相当于strcat

  char *s="abc" ;

  char buf[100]="123"

  sprintf(buf."%s",s)

   此时buf=124abc

3.)构造字符串

  char buf[100]

  sprintf(buf."I love you %d year!",10000);

3.sscanf 将一个字符串格式化,后送到另一个字符串。目标是字符串,源是变量

常用来分隔字符:

  sscanf("192.168.1.102","%d.%d.%d.%d",a,b,c,d)   等同strok();

   此时a=192 

         b=168

       c=1

      d=102

 scanf将标准输入的字符串,格式化后,送到变量中(读键盘输入)

 fscanf 将文件中的字符串,格式化后,送到变量(读文件)

0 人点赞