嘿嘿 解决了Dev C++ 中文乱码(有效版)

这是博主第一篇博客!记录一下博主的小小小小解决史!

很早就下载用了Dev c++ ,但现在隔了很长时间没去用过了再次打开发现出现中文乱码的现象!在网站上翻阅了许久!终于解决了问题!困扰了许久!


---------------------------------------------------------------------

这个中文乱码看着是真烦得慌!!!

tips:不要急不要急,事情慢慢都能解决掉滴!

还有不要保存在C盘哦!最好都保存在D盘内!本博客示范的未命名1.c 保存于C盘桌面上是为了演示方便!


图1 这是我们原来出现中文乱码的界面

编译的时候会出现这个窗口

图一

(再说一遍!这个中文乱码在之前没解决掉问题的时候一看到这个就很烦! )

图二是编译过后(中文乱码版)

图二


++第一种方法(也是博主强推亲测有效法)++

·第一步

请点击左上角<控制台界面>左上角

选中<默认值D>

图三 操作第一步

·第二步

将下方"使用旧版本控制台"勾上 并点击确定

图四 控制台点击默认值后的界面

图五 勾上下方按钮后

图6 点完确定之后再次这个操作出现这样子就代表操作对了!

·第三步

将此.c文件另存为,并选择 ANSI !!!

图7 选择ANSI!

·第四步

打开记事本 查看右下角是否为ANSI!

图8 被设置为ANSI的记事本

图9 未被设置 会出现中文乱码的记事本(看右下角显示得失UTF-8)

·第五步

点全部重新编译 并运行!就成功啦!

图10 太幸福了!看见中文!


--->不要嫌麻烦!非常有效的一个解决中文乱码的放大

^_^ 提供一个检测是否成功修改好中文乱码的代码

(出自懒猫老师数据结构课一实验 ,代码不完整但保证正确能顺利跑)

cpp 复制代码
#include <stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#include<stdbool.h>

#define NO_LENGTH  20
#define NAME_LENGTH 11

/* 定义学生结构体的数据结构 */
typedef struct Student{
    char studentNo[NO_LENGTH];
    char studentName[NAME_LENGTH];
}st;

/* 定义每条记录或节点的数据结构 */
typedef struct node
{
    struct Student data; //数据域
    struct node *next; //指针域
}Node,*Link;  //Node为node类型的别名,Link为node类型的指针别名
//定义提示菜单
void myMenu(){
    printf(" * * * * * * * * * 菜     单 * * * * * * * * * *\n");
    printf("     1 增加学生记录            2 删除学生记录                     \n");
    printf("     3 查找学生记录            4 修改学生记录                     \n");
    printf("     5 统计学生人数            6 显示学生记录                     \n");
    printf("     7 退出系统                                     \n");
    printf(" * * * * * * * * * * * * * * * * * * * * * * * *\n");
}

void inputStudent(Link l){
     printf("请输入学生学号:");
     scanf("%s",l->data.studentNo);
     printf("请输入学生的姓名:");
     scanf("%s",l->data.studentName);

     //每个新创建的节点的next域都初始化为NULL
     l->next = NULL;
}

void inputStudentNo(char s[],char no[]){
    printf("请输入要%s的学生学号:",s);
    scanf("%s",no);
}

void displayNode(Link head){
   // 填写代码,根据传入的链表head头指针,扫描链表显示所有节点的信息
}

/* 增加学生记录 */
bool addNode(Link head){
     Link p,q;   //p,q两个节点一前一后
     Link node;  //node指针指向新创建的节点
     node=(Link)malloc(sizeof(Node));
     inputStudent(node);

     q = head;
     p = head->next;  //q指向head后面的第一个有效节点
     if(head->next==NULL)
         //链表为空时
        head->next = node;
     else {
         //循环访问链表中的所有节点
        while(p != NULL){
            if (node->data.studentNo < p->data.studentNo){
                //如果node节点的学号比p节点的学号小,则插在p的前面,完成插入后,提前退出子程序
                q->next = node;
                node->next = p;
                return true;
            }
            else{
                //如果node节点的学号比p节点的学号大,继续向后移动指针(依然保持pq一前一后)
                q = p;
                p = p->next;

            }
        }
        //如果没能提前退出循环,则说明之前没有插入,那么当前node节点的学号是最大值,此时插在链表的最后面
        q->next = node;

    }
    return true;
}

bool deleteNode(Link head){
    // 按照给定的学号删除学生记录,如果删除成功返回true,如果没找到学号返回false
    
    //输入要处理的学号
        char no[NO_LENGTH];
    inputStudent

No("查询",no);

    return false;
}

bool modifyNode(Link head){
    // 按照给定的学号找到学生记录节点,如果修改成功返回true,如果没找到学号返回false
    
    //输入要处理的学号
    char no[NO_LENGTH];
    inputStudentNo("修改",no);

    return false;
    }

int countNode(Link head){
    //统计学生人数,扫描链表统计节点个数,返回节点数
    Link p;
    int count = 0;
    p = head->next;

    //填充代码
    return false;
}

void clearLink(Link head){
    Link q,p;
        //遍历链表,用free语句删除链表中用malloc建立起的所有的节点
}

int main() {
    int select;
        int count;
    Link head;  // 定义链表

    //建立head头结点,在这个程序中head指向头结点,头结点data部分没有内容,其后续节点才有真正的数据
    head = (Link)malloc(sizeof(Node));
    head->next = NULL;

    while(1)
    {
        myMenu();
        printf("\n请输入你的选择(0-7):");  //显示提示信息
        scanf("%d",&select);
        switch(select)
        {
        case 1:
            //增加学生记录
            if(addNode(head))
                printf("成功插入一个学生记录。\n\n");
            break;
        case 2:
            //删除学生记录
            if(deleteNode(head))
                printf("成功删除一个学生记录。\n\n");
            else
                printf("没有找到要删除的学生节点。\n\n");
            break;
        case 3:
            //查询学生记录
            if(queryNode(head))
                printf("成功找到学生记录。\n\n");
            else
                printf("没有找到要查询的学生节点。\n\n");
            break;
        case 4:
            //修改学生记录
            if(modifyNode(head))
                printf("成功修改一个学生记录。\n\n");
            else
                printf("没有找到要修改的学生节点。\n\n");
            break;
        case 5:
            //统计学生人数
            count = countNode(head);
            printf("学生人数为:%d\n\n",count);
            break;
        case 6:
            //显示学生记录
            displayNode(head);
            break;
        case 7:
            //退出前清除链表中的所有结点
            clearLink(head);
            return 0;
        default:
            printf("输入不正确,应该输入0-7之间的数。\n\n");
            break;
        }
    }
    return 0;
}


第二种方法 也是本社区最多人推荐的(但博主没成功哈 !)

第一步

打开 <编译选项>

图一 打开编译选项

  • 图二 点开后的界面

第二步

勾选"编译时加入以下命令 并 输入"-fexec-chart=gbk"后点击确定即可

(此方法不一定适用于所有人 因为我就是那个用这个方法没解决掉的!)



第三种方法 取自CSDN社区其他博主的博客

notepad++下载及安装步骤

你似乎来到了没有知识存在的荒原 - 知乎



这篇就这样啦!

如果有其他方法可分享在评论区帮助更多的小白结合问题!

如 你有更完善的解决方法也可以发在评论区!

"学习经验值+𝟭"!

一起加油吧各位 !

相关推荐
薯条不要番茄酱1 小时前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
盼海3 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
搬砖的小码农_Sky10 小时前
C语言:数组
c语言·数据结构
先鱼鲨生11 小时前
数据结构——栈、队列
数据结构
一念之坤11 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
IT 青年12 小时前
数据结构 (1)基本概念和术语
数据结构·算法
熬夜学编程的小王12 小时前
【初阶数据结构篇】双向链表的实现(赋源码)
数据结构·c++·链表·双向链表
liujjjiyun12 小时前
小R的随机播放顺序
数据结构·c++·算法
Reese_Cool14 小时前
【数据结构与算法】排序
java·c语言·开发语言·数据结构·c++·算法·排序算法
djk888814 小时前
.net将List<实体1>的数据转到List<实体2>
数据结构·list·.net