说实话,我原来把这两个函数给记错了,导致我在编译的时候出现了严重的错误,为了纪念我的错误,我决定把这个擦操作写一下心得,让我以后不再犯同样的错误。
scanf 和 printf 这两个函数是进行标准输入输出的;
scanf("%*s");
scanf("%*c");
在这里,scanf 函数中的格式声明是不一样的,与原来的不同,只要在%和s或者是c中间加上*(星号) 就代表这
这个格式输入不需要参数,
例如
如果输入 1 a 2
输出结果 1 2
中间的a 就没有给任何的变量,你可以理解为这个a 放在了输入缓冲区中,但是经过 %*c 操作他在输入缓冲区中
剔除了,也可以理解%*c 就是把输入缓冲区中的前一个字母取走了,但是在这里无论你怎么想,都不要忘记
这个操作只能取走一个字母,一个符号,多了是不行的。
scanf ("%*s");
通过上面的分析应该很快的就理解了,这个符号的意思,同是一个scanf 函数,只是一个字母变化了,他们的功能的
相思度应该是很高的,说出他的功能之前,我想先举个例子 :
这是两个不同方式的输入,但是这里面要注意的东西还是比较多的,首先这里的%*s 是代表消除掉输入缓冲区中的
一串字母或者是符号,在这里就不一样了,消除一串,那用什么来标记一串呢,后来发现,和普通的字符串一样
通过空格,回车,来停止读入,这样的方法在这里也是同样适用的。
printf("%*c") 和 printf("%*s");
这两个操作函数一起说就可以,因为功能实在是太像了,由于这是一个输出函数,和之前的输入函数的功能就不一样了,刚才的输入函数,取出的数据都是在输入缓冲区中的,这里的输出函数要进行的是输出操作,所以,他的功能就是和输出相关的
这两个函数和 printf ("%nd");是相似的,前者能控制有一个宽度,后者是不能动态的控制宽度的,
例如 :
其实这个printf 函数还有这样的用法呢!!!