#include<iostream.h>
#include<conio.h>
int main(int argc, char* argv[])
{
    cout<<"abc\\n"<<endl;
    cout<<"abc\\\n"<<endl;
     cout<<"abc\\\\n"<<endl;
    _getch();
        return 0;
}
结果:abc\n
     abc\     abc\\n 然后换行
为什么会这样?我以前一直以为结果是:
   abc\   abc\\   abc\\\哪位大侠指点一下吧

解决方案 »

  1.   

    int main(int argc, char* argv[])
    {
        cout<<"abc\\\n"<<endl;
        cout<<"abc\\\\\n"<<endl;
         cout<<"abc\\\\\\\n"<<endl;
        _getch();
            return 0;
    }输出:abc\abc\\abc\\\
      

  2.   

    #include<iostream.h>
    #include<conio.h>
    int main(int argc, char* argv[])
    {
        cout<<"abc\\n"<<endl;
        cout<<"abc\\\n"<<endl;
         cout<<"abc\\\\n"<<endl; //  C++不能这么用,这样cout<<"abc"<<endl; 显示""内容/    
        _getch();
            return 0;
    }
      

  3.   

    从左到右来进行转义,当有两个\\出现时,输出一个\
    cout<<"abc\\n"<<endl;
    cout<<"abc\\\n"<<endl;
    cout<<"abc\\\\n"<<endl;第一行出现\\,所以输出一个\,n被当做字符输出
    第二行前两个\\,输出一个\,后面\n被理解为换行
    第三行自己理解了。。呵呵