开发者

Dev C++中文乱码的有效解决方案

目录
  • 第一种方法(也是强推亲测有效法)
    • 第一步
    • 第二步
    • 第三步
    • 第四步
    • 第五步
  • 第二种方法  也是本社区最多人推荐的(但博主没成功哈 !)
    • 第一步
    • 第二步
  • 第三种方法(取自其他博主的博客)

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

    Dev C++中文乱码的有效解决方案

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

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

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

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

    Dev C++中文乱码的有效解决方案

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

    Dev C++中文乱码的有效解决方案

    图一

    Dev C++中文乱码的有效解决方案

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

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

    Dev C++中文乱码的有效解决方案

    图二 

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

    第一步

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

    选中<默认值D>

    Dev C++中文乱码的有效解决方案

    图三   操作第一步    

    第二步

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

    Dev C++中文乱码的有效解决方案

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

    Dev C++中文乱码的有效解决方案

    图五 勾上下方按钮后 

    Dev C++中文乱码的有效解决方案

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

    第三步

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

    Dev C++中文乱码的有效解决方案

    Dev C++中文乱码的有效解决方案

    图7 选择ANSI!

    第四步

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

    Dev C++中文乱码的有效解决方案

    图8 被设置为ANSI的记事本

    Dev C++中文乱码的有效解决方案

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

    第五步

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

    Dev C++中文乱码的有效解决方案

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

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

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

    (代码不完整但保证正确能顺利跑)

    #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(sizXZMlrnoeof(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;
                    n编程客栈ode->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;
     
       javascript while(1)
        {
            myMenu();
            printf("\n请输入你的选择(0-7):");  //显示提示信息
            scanf("%d",&select);android
            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("没有找到php要查询的学生节点。\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;
    }

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

    第一步

    打开 <编译选项>

    Dev C++中文乱码的有效解决方案

    图一 打开编译选项

    Dev C++中文乱码的有效解决方案

    图二 点开后的界面

    第二步

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

    Dev C++中文乱码的有效解决方案

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

    第三种方法(取自其他博主的博客)

    notepad++下载及安装步骤

    Dev C++中文乱码的有效解决方案

    这篇就这样啦!

    以上就是Dev C++中文乱码的有效解决方案的详细内容,更多关于Dev C++中文乱码的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜