當前位置:首頁 » 編程語言 » c語言輸出亂碼

c語言輸出亂碼

發布時間: 2023-01-06 23:49:12

c語言輸出中文亂碼

提幾個建議。1)沒給出str的大小,不知道你定義的多大。至少str要保證120以上。考慮用2的倍數最優可以char
str[122]並且因為系統將自動在最後加'\0'。最好設定讀取121為好。以免讀取半個中文字。2)fgets的用法問題。
追加返回值的判斷為好。if(fgets(str,120,fp)!=null){
printf("%s\n",str);}3)關於出現亂碼的問題,估計你的文件中有中文漢字。讀取到119位的時候正好是某個漢字的前一半。要解決這個if(fgets(str,121,fp)!=null)
這里120
改成讀偶數個121。另外文件最好用寬字元的。就可以避免亂碼了。

Ⅱ c語言編譯運行亂碼是什麼原因

這種情況多數是由於操作系統的語言選項不正確引起的。建議你查看一下控制面板中的區域和語言選項,特別是有關「非Unicode程序的語言」,一定要選擇成「中文(簡體,中國)」。然後重啟電腦。

Ⅲ 為什麼C語言輸出文件內容亂碼

這種文本文件,不能直接使用讀到結構的方法。因為結構里會有非文本的控制符,比如字元串結束符'\0'。
一般使用直接讀到結構的方法,只限於二進制格式的文件,並且最好是讀自己創建的文件,別人創建的,格式剛剛好合適創建結構的也很少。
你這個亂碼,你的文件里,學號長度為10個位元組,所以你定義學號這個變數時,必須定義11個位元組的長度,因為字元串的變數,必須要有一個'\0'作為結束,不然的話,顯示的時候,沒有結束符就會接著往下顯示,就會有亂碼出現。
如果僅僅是這三行的話,倒也能使用結構來讀,比如結構里定義num[11],讀完後執行一下num[10] = '\0';給它補一個結束符。但如果有人叫「王老四」,名字有的是2個字,有的是3個字這樣,你這個就不好判斷了。
這種文本,最好是使用fscanf("%s %s %s %s %s", num, name, sex, date, major)的形式來讀取。每次讀取一行。(注意字元串定義變數時,長度一定要多加1位)。

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:535
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:31
linux485 發布:2025-07-05 14:38:28 瀏覽:310
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:760
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:437
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:731
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:247
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:696
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:288
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:837