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 将文件中的字符串,格式化后,送到变量(读文件)