Dev C++中文亂碼的有效解決方案
很早就下載用了Dev c++ ,但現(xiàn)在隔了很長時間沒去用過了再次打開發(fā)現(xiàn)出現(xiàn)中文亂碼的現(xiàn)象!在網(wǎng)站上翻閱了許久!終于解決了問題!困擾了許久!

這個中文亂碼看著是真煩得慌?。?!
tips:不要急不要急,事情慢慢都能解決掉滴!
還有不要保存在C盤哦!最好都保存在D盤內(nèi)!本博客示范的未命名1.c 保存于C盤桌面上是為了演示方便!
圖1 這是我們原來出現(xiàn)中文亂碼的界面

編譯的時候會出現(xiàn)這個窗口

圖一

(再說一遍!這個中文亂碼在之前沒解決掉問題的時候一看到這個就很煩! )
圖二是編譯過后(中文亂碼版)

圖二
第一種方法(也是強推親測有效法)
第一步
請點擊左上角<控制臺界面>左上角
選中<默認值D>

圖三 操作第一步
第二步
將下方“使用舊版本控制臺”勾上 并點擊確定

圖四 控制臺點擊默認值后的界面

圖五 勾上下方按鈕后

圖6 點完確定之后再次這個操作出現(xiàn)這樣子就代表操作對了!
第三步
將此.c文件另存為,并選擇 ANSI ?。?!


圖7 選擇ANSI!
第四步
打開記事本 查看右下角是否為ANSI!

圖8 被設置為ANSI的記事本

圖9 未被設置 會出現(xiàn)中文亂碼的記事本(看右下角顯示得失UTF-8)
第五步
點全部重新編譯 并運行!就成功啦!

圖10 太幸福了!看見中文!
—>不要嫌麻煩!非常有效的一個解決中文亂碼的放大
提供一個檢測是否成功修改好中文亂碼的代碼
(代碼不完整但保證正確能順利跑)
#include <stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#include<stdbool.h>
#define NO_LENGTH 20
#define NAME_LENGTH 11
/* 定義學生結構體的數(shù)據(jù)結構 */
typedef struct Student{
char studentNo[NO_LENGTH];
char studentName[NAME_LENGTH];
}st;
/* 定義每條記錄或節(jié)點的數(shù)據(jù)結構 */
typedef struct node
{
struct Student data; //數(shù)據(jù)域
struct node *next; //指針域
}Node,*Link; //Node為node類型的別名,Link為node類型的指針別名
//定義提示菜單
void myMenu(){
printf(" * * * * * * * * * 菜 單 * * * * * * * * * *\n");
printf(" 1 增加學生記錄 2 刪除學生記錄 \n");
printf(" 3 查找學生記錄 4 修改學生記錄 \n");
printf(" 5 統(tǒng)計學生人數(shù) 6 顯示學生記錄 \n");
printf(" 7 退出系統(tǒng) \n");
printf(" * * * * * * * * * * * * * * * * * * * * * * * *\n");
}
void inputStudent(Link l){
printf("請輸入學生學號:");
scanf("%s",l->data.studentNo);
printf("請輸入學生的姓名:");
scanf("%s",l->data.studentName);
//每個新創(chuàng)建的節(jié)點的next域都初始化為NULL
l->next = NULL;
}
void inputStudentNo(char s[],char no[]){
printf("請輸入要%s的學生學號:",s);
scanf("%s",no);
}
void displayNode(Link head){
// 填寫代碼,根據(jù)傳入的鏈表head頭指針,掃描鏈表顯示所有節(jié)點的信息
}
/* 增加學生記錄 */
bool addNode(Link head){
Link p,q; //p,q兩個節(jié)點一前一后
Link node; //node指針指向新創(chuàng)建的節(jié)點
node=(Link)malloc(sizeof(Node));
inputStudent(node);
q = head;
p = head->next; //q指向head后面的第一個有效節(jié)點
if(head->next==NULL)
//鏈表為空時
head->next = node;
else {
//循環(huán)訪問鏈表中的所有節(jié)點
while(p != NULL){
if (node->data.studentNo < p->data.studentNo){
//如果node節(jié)點的學號比p節(jié)點的學號小,則插在p的前面,完成插入后,提前退出子程序
q->next = node;
node->next = p;
return true;
}
else{
//如果node節(jié)點的學號比p節(jié)點的學號大,繼續(xù)向后移動指針(依然保持pq一前一后)
q = p;
p = p->next;
}
}
//如果沒能提前退出循環(huán),則說明之前沒有插入,那么當前node節(jié)點的學號是最大值,此時插在鏈表的最后面
q->next = node;
}
return true;
}
bool deleteNode(Link head){
// 按照給定的學號刪除學生記錄,如果刪除成功返回true,如果沒找到學號返回false
//輸入要處理的學號
char no[NO_LENGTH];
inputStudent
No("查詢",no);
return false;
}
bool modifyNode(Link head){
// 按照給定的學號找到學生記錄節(jié)點,如果修改成功返回true,如果沒找到學號返回false
//輸入要處理的學號
char no[NO_LENGTH];
inputStudentNo("修改",no);
return false;
}
int countNode(Link head){
//統(tǒng)計學生人數(shù),掃描鏈表統(tǒng)計節(jié)點個數(shù),返回節(jié)點數(shù)
Link p;
int count = 0;
p = head->next;
//填充代碼
return false;
}
void clearLink(Link head){
Link q,p;
//遍歷鏈表,用free語句刪除鏈表中用malloc建立起的所有的節(jié)點
}
int main() {
int select;
int count;
Link head; // 定義鏈表
//建立head頭結點,在這個程序中head指向頭結點,頭結點data部分沒有內(nèi)容,其后續(xù)節(jié)點才有真正的數(shù)據(jù)
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("沒有找到要刪除的學生節(jié)點。\n\n");
break;
case 3:
//查詢學生記錄
if(queryNode(head))
printf("成功找到學生記錄。\n\n");
else
printf("沒有找到要查詢的學生節(jié)點。\n\n");
break;
case 4:
//修改學生記錄
if(modifyNode(head))
printf("成功修改一個學生記錄。\n\n");
else
printf("沒有找到要修改的學生節(jié)點。\n\n");
break;
case 5:
//統(tǒng)計學生人數(shù)
count = countNode(head);
printf("學生人數(shù)為:%d\n\n",count);
break;
case 6:
//顯示學生記錄
displayNode(head);
break;
case 7:
//退出前清除鏈表中的所有結點
clearLink(head);
return 0;
default:
printf("輸入不正確,應該輸入0-7之間的數(shù)。\n\n");
break;
}
}
return 0;
}第二種方法 也是本社區(qū)最多人推薦的(但博主沒成功哈 ?。?/h2>
第一步
打開 <編譯選項>

圖一 打開編譯選項

圖二 點開后的界面
第二步
勾選“編譯時加入以下命令 并 輸入“-fexec-chartset=gbk”后點擊確定即可

(此方法不一定適用于所有人 因為我就是那個用這個方法沒解決掉的!)
第三種方法(取自其他博主的博客)

這篇就這樣啦!
以上就是Dev C++中文亂碼的有效解決方案的詳細內(nèi)容,更多關于Dev C++中文亂碼的資料請關注腳本之家其它相關文章!
相關文章
詳解C/C++ Linux出錯處理函數(shù)(strerror與perror)的使用
我們知道,系統(tǒng)函數(shù)調(diào)用不能保證每次都成功,必須進行出錯處理,這樣一方面可以保證程序邏輯正常,另一方面可以迅速得到故障信息。本文主要為大家介紹兩個出錯處理函數(shù)(strerror、perror)的使用,需要的可以參考一下2023-01-01
Visual Studio中scanf函數(shù)報錯的幾種解決方法
本文主要介紹了Visual Studio中scanf函數(shù)報錯的幾種解決方法,文中通過圖文示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-03-03

