请问c++中cout<<ends;和cout<<" ";的区别(双引号中有一个空格)

如题:请问c++中cout<<ends;和cout<<" ";的区别(双引号中有一个空格)
tacyxx:老兄你学过c++没有?
自己试试这段代码!看看有什么结果!
#include <iostream>
using namespace std;
int main(){

cout<<"A"<<ends<<"B"<<endl<<"C";
return 0;
}

在PKU上做题有的只能用cout<<" ";一用cout<<ends;就Wrong Answer

这是库中对ends的定义。
_CRTIMP inline basic_ostream<char, char_traits<char> >&
__cdecl ends(basic_ostream<char, char_traits<char> >& _O)
{_O.put('\0');
return (_O); }
实际是打印的一个‘\0’,而不是空格。而且,ends不可以当成一个字符,‘\0'就可以,并且有相应的ascii码值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-28
cout<<ends;没有这种表示方法,应该是cout<<endl;输出一个换行符。
cout<<" ";作用是打印一个含一个空格符号的字符串。
两者的输出结果是不一样的。前者换行,后者只是打个空格出来。
第2个回答  2008-11-28
应该是没有什么区别的,只是两种不同的表示方法,C++中还有STEW(1),printf( )等等表示空格的方法
相似回答