huang12134 2022-03-18 23:02 采纳率: 50%
浏览 28

各位程序猿们们字符串里的中文无法输出是为什么?

问题遇到的现象和发生背景

求问为什么字符串中的中文没法打印出来(visaul stdio 2017)

问题相关代码,请勿粘贴截图

#include
#include
using namespace std;
int main ()
{
string test = "test1怎么不打印中文";

for (int i = 0; i < sizeof(test) / sizeof(test[0]); i++)
{

    if (test[i] == NULL) { break; }
    { cout << test[i] << endl;
    }

}
system("pause");
return 0;

}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 关注

    因为一个中文是两个字节, cout << test[i] << endl;一个字节一个字节的循环输出
    遇到中文时是每次循环半个中文的字节(一个字节)
    cout << test[i] << endl;是每输出半个中文的字节(一个字节)之后 endl换行,自然不对了
    把 endl换行去掉就可以了

    你题目的解答代码如下:

    int main ()
    {
    string test = "test1怎么不打印中文";
    for (int i = 0; i < test.length(); i++)
    {
        cout << test[i];
    }
    system("pause");
    return 0;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月18日

悬赏问题

  • ¥15 可任意设置即使长度的倒计时器电路设计
  • ¥15 MusePose 部署安装问题,安装后无法启动
  • ¥15 Psexec获得电脑system权限该怎么操作,有偿
  • ¥50 python+flask实现流式api接口的问题
  • ¥20 关于#vue.js#的问题:后端返回的代码如下,根据后端返回的数据在页面上重新展示
  • ¥15 visual studio 社区版离线激活失败了
  • ¥15 Flask应用部署到阿里云服务器失败,无法访问网页,问题出在哪里?
  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M
  • ¥15 一道蓝桥杯的题,请问我错在哪里
  • ¥15 关于#android问题,xposed模块找不到so