请教字符串,字符集问题:为什么我在VS2008下进行C++编程时,字符串老是要加 L 宏才能正确执行?比如:file.open(L"C:\\Users\\Administrator\\Desktop\\test.txt");或cout<<L"这样好麻烦啊!"<<endl;—————————————————————纠结分割线———————————————————————————字符串为什么老是要加 L 宏才能正确执行?这做写起来麻烦死了,大家是怎么解决的?还是你们也是这样?求分析,求解释,求解决,求指点!高人来嘛!

解决方案 »

  1.   

    字符串为什么老是要加 L 宏才能正确执行?这做写起来麻烦死了,大家是怎么解决的?还是你们也是这样?求分析,求解释,求解决,求指点!高人来嘛!
    ==============
    这是因为VS2008默认的编码是UNICODE,所以要加L或是加_T("XXXX")这样才能保证字符串在编译时按UNICODE编码,而以前的VC6默认编码是ANSI,所以不用加。
    解决方法很简单,你在[项目]--->[属性]---->[配置属性]中的“字符集”里选“使用多字节字符集”就行了。
      

  2.   

    谢谢楼上几位的热心解答,是可以了,但是,如果路径里带中文,怎么又不行了?比如:
    file.open("C:\\Users\\Administrator\\Desktop\\测试\\test123.txt");
    这样的话,路径老读不到,带中文就不行了,怎么解决?
      

  3.   

    谢谢楼上几位的热心解答,是可以了,但是,如果路径里带中文,怎么又不行了?比如:
    file.open("C:\\Users\\Administrator\\Desktop\\测试\\test123.txt");
    这样的话,路径老读不到,带中文就不行了,怎么解决?
    ===========
    不管是ANSI还是UNICODE,都是支持中文的,所以这个应该不是编码的原因造成的。
      

  4.   

    不要怕麻烦,用unicode的话,你的软件在日文,韩文操作系统下也会显示正常的汉字。如果用ansi,在日文,韩文等其他语言的操作系统下,你的软件会显示日文或韩文乱码。unicode是为了支持国际化