C语言编写 中文汉字全是乱码 然后能编译 出来的是这样情况 不知道该怎么去解决 明天就到时间了 之前打英文就没问题 只有汉字有问题有没有来解决一下为什么出现这样情况 求解答

img


C语言编写 中文汉字全是乱码 然后能编译 出来的是这样情况 不知道该怎么去解决 明天就到时间了 之前打英文就没问题 只有汉字有问题有没有来解决一下为什么出现这样情况 求解答

c文件的编码格式改成 utf-8 再重新编译运行, 不行就改成 gbk,再重新编译运行

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7414785
  • 你也可以参考下这篇文章:【C语言基础01】算法的组成要素、C语句概述、数据的输入输出等
  • 除此之外, 这篇博客: C语言标识符之关键字,预处理标识符和用户标识符的区别和关系中的 以下标识符中,不能作为C语言合法的用户定义标识符的是() 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • A.	sizeof
    
    B. 	include
    
    C. 	define
    
    D. 	malloc
    

    答案:A
    解析:

    sizeof是C语言关键字,不能用来定义为用户标识符因为
    include,define和malloc仅仅是预处理命令,不是c语言关键字。并且都满足以字母或下划线开头的标识符定义
    
  • 您还可以看一下 朱有鹏老师的C语言复杂表达式与指针应用视频精讲-C语言专题第4部分课程中的 4.4.3.函数指针实战1小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    中文汉字乱码的问题通常是由于编码不一致引起的。C语言默认使用ASCII编码,而中文汉字通常使用UTF-8编码。因此,要解决中文汉字乱码问题,可以考虑以下几个方面:

    1. 源代码文件编码:确保源代码文件使用UTF-8编码保存。可以在文本编辑器中选择保存为UTF-8格式,或者在文件开头添加编码声明:
    // 加上下面这一行
    // -*- coding: utf-8 -*-
    
    1. 字符串字面量编码:使用宽字符(wchar_t)或多字节字符(mbstowcs和wcstombs)来处理中文汉字。宽字符可以直接表示中文汉字,而多字节字符函数可以进行字符编码的转换。

    例如,使用宽字符处理中文汉字:

    #include <wchar.h>
    
    int main() {
        const wchar_t* chineseString = L"中文汉字";
        wprintf(L"%ls\n", chineseString);
        return 0;
    }
    
    1. 标准库函数的使用:如果需要在控制台输出中文汉字,可以使用wprintf而不是printf函数。
    #include <stdio.h>
    
    int main() {
        printf("This is English.\n");
        wprintf(L"这是中文。\n");
        return 0;
    }
    
    1. 字符串处理函数:对于字符串处理函数,如strcat和strlen,由于它们处理的是字节序列,而不是字符序列,需要使用与源字符串编码一致的函数。

    推荐使用宽字符版本的字符串处理函数,例如wcscat和wcslen。如果需要使用多字节字符处理函数,则需要进行字符编码的转换。

    以上是常见的解决方案,根据具体情况可能还需要结合其他方法。如果问题仍然存在,可能需要检查编译器和操作系统的相关设置,确保它们支持中文字符的显示和处理。

    需要注意的是,以上解决方案假设您的系统支持Unicode字符集和UTF-8编码。如果不确定系统的支持情况,可以尝试在终端或命令提示符中输入中文字符,如果能够正常显示,则说明系统支持中文字符。否则,需要在系统设置中启用中文字符集。

    希望以上解决方案能够帮助您解决中文汉字乱码的问题。如果还有其他疑问,请随时提问。

加上 SetConsoleOutputCP(65001),
再不行设置下编码格式
https://blog.csdn.net/m0_67790374/article/details/126688597

底层逻辑调用bug