c/c++ 语言中cin与scanf有什么不同
7个回答
展开全部
首先,cin 是个C++类型对象,它的类型是basic_istream,scanf 是个不定参数的函数,
其次,cin 所属的类重载了 >> 运算符,使输入更简单了,比如
double d; cin>>d;
而 scanf 不一样的,
double d;scanf("%lf",&d);
看起来麻烦一点。
另外,cin 也更安全,不会发生内存溢出。
char c; scanf("%lf",&c); //这时需要8个字节的空间,但只提供一个,内存溢出。
而 cin 也更安全
char c;cin>>c; //只输入字符,不会溢出
从底层上来说,C++ 的 cin 与 C语言的 scanf 都采用 stdin 作为输入源, 但cin和scanf 采用了不同的缓冲区,可以通过 ios 头文件里面的 sync_with_stdio () 函数设置缓冲区共享,使cin和scanf 共享缓冲区。
C++也可以改变输入源,但这样很复杂。
其实,C++对 stdin 进行了封装,用流和迭代器进行了转变了流的概念而已,而C的scanf直接操作 stdin而已
其次,cin 所属的类重载了 >> 运算符,使输入更简单了,比如
double d; cin>>d;
而 scanf 不一样的,
double d;scanf("%lf",&d);
看起来麻烦一点。
另外,cin 也更安全,不会发生内存溢出。
char c; scanf("%lf",&c); //这时需要8个字节的空间,但只提供一个,内存溢出。
而 cin 也更安全
char c;cin>>c; //只输入字符,不会溢出
从底层上来说,C++ 的 cin 与 C语言的 scanf 都采用 stdin 作为输入源, 但cin和scanf 采用了不同的缓冲区,可以通过 ios 头文件里面的 sync_with_stdio () 函数设置缓冲区共享,使cin和scanf 共享缓冲区。
C++也可以改变输入源,但这样很复杂。
其实,C++对 stdin 进行了封装,用流和迭代器进行了转变了流的概念而已,而C的scanf直接操作 stdin而已
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf用在c中,cin用在c++中。
scanf输出要写格式,scanf("%d",&a);
cin不用,直接写,cin>>a;
scanf输出要写格式,scanf("%d",&a);
cin不用,直接写,cin>>a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf用在c中,cin用在c++中。
scanf调用格式:scanf("[内容]%d",[变量]).
cin调用格式:cin>>"[内容]">>[变量]>>endl.
scanf调用格式:scanf("[内容]%d",[变量]).
cin调用格式:cin>>"[内容]">>[变量]>>endl.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言里的输入输出是用函数实现的,不是语言本身的事情,
c++是用流进行输入输出输出。
c++是用流进行输入输出输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询