C语言中的scanf,printf与C++中的cin,cout调用机制有什么区别?如何交叉使用?
最近重新学习C语言,对printf,scanf的调用机制不是很明白。一般的书也没解释清楚。能具体解析一下吗?与C++语言里的cin,cout调用有何区别?以前我在使用C++时,交叉使用时经常发现输出格式如同天书,很难控制。
例如:
如下程序是用来检验 % 的取余功能。
#include <stdio.h>
void main()
{
int x,y,result,c;
do
{
scanf("%d %d",&x,&y);
printf("The anser is :");
scanf("%d",&result);
if( result== x%y )
{
printf("You are right!\n");
}
else
{
printf("The right answer is : %d", x%y);
};
printf("Are you again (\'y\' or \'n\'):");
c=getchar();
if ( c=='\n' )
c=getchar();
}while( c!='n' );
}
我不明白,为什么不加:
if( c=='\n' )
c=getchar();
就会不正常。跟踪调试时发现第一个getchar()得到的是10('\n'),为什么?改用scanf("%c",&c),更加不正常。请问如何是改正?
最后希望有人能为我谈谈底层的调用机制。
以上调试使用的是vc6.0。
希望大侠多多帮忙!!