#include "stdio.h"
int main(int argc,char *argv[]){
char a[20]
int x,t
double y
scanf("%s%n",a,&t)//把接收的字符个数赋给t
printf("%s-->You have just entered %d character(s).\n",a,t)
scanf("%d%n",&x,&t)//把接收整型数的字符个数赋给t
printf("%d-->You have just entered %d character(s).\n",x,t)
scanf("%lf%n",&y,&t)//把接收浮点数的字符个数赋给t
printf("%g-->You have just entered %d character(s).\n",y,t)
return 0
}运行举例如下:
上图中除第一项外后面都多出了1,原因是还接收了一个回车!所以%n操作结果是“接收的字符数”而不是赋给变量的值的字符数——这在使用%n时要注意一下。在printf中的用法与上述类似,把刚刚输出的字符个数赋给对应的变量,如int
xprintf("12345%n\n",&x)printf("%d",x)会打印出12345回车和5来。
在c语言中,“/n”没有特别的意思,就是一个斜杠加字符n,总共两个字符。“\n”是转义字符,表示换行。一个字符。
"/n"没有特别的意思,就是一个长度为2的字符串,或者说,你所看到的资料上面是错的,出错了都,再或者说它让你区分\n和/n,要告诉你\n表示的不是两个字符'\'和'n',表示一个字符,就是换行回车,而/n表示的就是两个字符。
如果是第二种情况的话,说明你比较严谨,但是这种东西是没有必要考究的,知道文段内容的主旨就够了。
C语言中”\n”的意思是换行,如果在多数据的输出的同时,没有进行换行处理,那么也将变成大数据的表达方式存在。