[爆卦]fread中文是什麼?優點缺點精華區懶人包

為什麼這篇fread中文鄉民發文收入到精華區:因為在fread中文這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Pix911 (Pix)看板C_and_CPP標題[問題] C語言fread後面跑出亂碼時間Mo...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
問題(Question):
印出的資料在10以前是正常
10以後就變成亂碼
預期的正確結果(Expected Output):
編號 地區 夜市名稱 營業地點 營業時間
1 基隆 基隆廟口夜市 仁愛區仁三路和愛四路一帶 全年無休
2 台北 士林夜市 捷運劍潭站至士林站之間 全年無休
. . . . .
. . . . .
. . . . .
10 新竹 後站夜市 新竹市南大路139巷 二、四
11 新竹 清大夜市 新竹市建功路 全年無休
12 苗栗 文化夜市 嘉義市中心 五
錯誤結果(Wrong Output):
編號 地區 夜市名稱 營業地點 營業時間
1 基隆 基隆廟口夜市 仁愛區仁三路和愛四路一帶 全年無休
2 台北 士林夜市 捷運劍潭站至士林站之間 全年無休
. . . . .
. . . . .
. . . . .
10 新竹 後站夜市 新竹市南大路139巷 二、四
-1224736768s竹 M大夜市 s竹市建功路 悧~無休

-1392508928]栗 憭 J市 顫q市中心 ?

程式碼(Code):(請善用置底文網頁, 記得排版)
https://gist.github.com/1022970
(這樣OK嗎? 不好意思...我是第一次用這一類網址)
補充說明(Supplement):
是先讀入資料再印出來
不知道為什麼編號10之前都好好的
11後就變成了亂碼
輸入進去的資料沒有問題

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.141.170.180
LPH66:沒貼程式真的只能隔空抓藥...這現象大概只能猜陣列超出範圍 06/13 23:16
Pix911:很長我不知道怎麼貼ˊˋ 06/13 23:17
LPH66:都說了請善用置底文網頁 Orz 06/13 23:18
fjm31714:"請善用置底網址" 06/13 23:19
※ 編輯: Pix911 來自: 220.141.170.180 (06/13 23:21)
LPH66:程式看起來似乎沒有問題 也許要看到資料檔案才能說是啥問題 06/13 23:44
LPH66:說似乎是因為我好像發現了某個細節 但要看到資料檔才能確認 06/13 23:45
kiedveian:新 0xB773 s 0x73 -1224736768 B7000000 06/13 23:46
kiedveian:說不定問題在第十行的資料結尾… 06/13 23:48
LPH66:嗯 樓上發現的這一點我有考慮進去 所以才說某個細節可能有關 06/13 23:48
LPH66:所以我才說要看到資料檔才能確認... 06/13 23:49
cole945:fopen mode用binary mode呢? 應該是有換行字被吃掉了.. 06/14 00:00
CCWck:應該是國字"四"的ascii碼的問題 請找"許蓋功"問題 06/14 01:24
hilorrk:看到中文字 第一個想到的也是許功蓋 06/14 03:21
xatier:許功蓋飯問題囉XD 06/14 08:23
angleevil:改成寬字元吧 06/14 09:56
LPH66:fread/fwrite 應該和許功蓋問題無關吧... 06/14 09:58
angleevil:ft = fopen( "nightmarket.dat", "r+" );r+改成rb+ 06/14 10:09
angleevil:65行的main改成continue 06/14 10:12
angleevil:85行的r改成rb 06/14 10:14
angleevil:65行不用改,我誤解他在while範圍內了 06/14 10:24
angleevil:fread判斷結尾是用等於0來判斷,你用feof不一定抓到 06/14 10:27
angleevil:檔案結尾,甚至有可能會少讀or多讀一行 06/14 10:27
angleevil:還有每次讀完檔,最好用memset輕空struct內容 06/14 10:30
angleevil:~"~這是我能想到錯誤的點 06/14 10:30
感謝a大<(_ _)>
沒有亂碼了
我把r改成rb
還有學長建議新增完重開檔案
終於OK了
還有....L大很抱歉
我弄了好久還是沒辦法上傳資料檔ˊˋ
最後...謝謝各位前輩的幫忙^^
※ 編輯: Pix911 來自: 111.252.11.99 (06/14 14:18)
angleevil:char改成unsigned char 06/14 14:36
Pix911:哪個char? 06/14 16:00
angleevil:struct 裡面的char 06/14 16:29
Pix911:哦哦~那跟原本會有甚麼差別嗎? 06/14 16:34
angleevil:恩,我其實也不太懂這之間的細節,但是我看網上,printf 06/14 16:35
angleevil:中文時,大家都用unsigned char.這可能要請有經驗的回答 06/14 16:35
james732:對中文用 char 似乎就挺怪異的... 06/14 16:53
angleevil:其實我是想建議wchar_t拉,只是我最近才知道這東西 06/14 22:03
angleevil:所以就沒建議了 06/14 22:04

你可能也想看看

搜尋相關網站