濮阳杆衣贸易有限公司

主頁 > 知識庫 > 完美解決go Fscanf 在讀取文件時出現(xiàn)的問題

完美解決go Fscanf 在讀取文件時出現(xiàn)的問題

熱門標(biāo)簽:上海極信防封電銷卡價格 湛江crm外呼系統(tǒng)排名 鄭州智能語音電銷機(jī)器人價格 宿遷便宜外呼系統(tǒng)代理商 仙桃400電話辦理 重慶慶云企業(yè)400電話到哪申請 地圖標(biāo)注免費定制店 寧波語音外呼系統(tǒng)公司 不封卡外呼系統(tǒng)

先要明白Fscanf的工作原理

Fscanf在遇到\n才結(jié)束

遇到\r時就會把\r替換成0

這就有個問題,要注意自己的文本換行符是什么,在Windows下就是\r\n,在Linux,Mac下就是\n,也就是說這里有個坑,

代碼在Linux和Mac下讀取數(shù)據(jù)文件是正常的,在Windows下就會遇到各種行末尾有個0,網(wǎng)上辦法用什么替換啊,用什么自定義Scan函數(shù)啊,太麻煩了,直接使用自帶IDE將打開的數(shù)據(jù)文件集換行符改成LF(Linux,Mac換行符)就行了

如下圖Idea

文件右下角LF點擊就可以更換換行符

補充:go中的Fscanf讀到0的問題

今天在使用Fscanf讀矩陣的時候遇到了一個問題,發(fā)現(xiàn)每次遇到換行,就多讀一個0的問題

func readMaze(filename string) [][]int {
 file, err := os.Open(filename)
 if err != nil {
 panic(err)
 }
 var row,col int
 fmt.Fscanf(file, "%d %d", row, col)
 maze := make([][]int, row)
 for i := range maze {
 maze[i] = make([]int, col)
 for j := range maze[i] {
  fmt.Fscanf(file,"%d",maze[i][j])
 }
 }
 return maze
}

分析得出這是由于windows下的格式導(dǎo)致的,在windows下的換行符是\r\n,所以遇到\r會讀一個0進(jìn)去,在linux下?lián)Q行符只有\(zhòng)n

解決方法1

直接通過修改ide的格式即可,在goland的下方修改:

改成LF即為linux,這種方法我試了沒成功,不知道是不是電腦的原因,可以先試一下這種方法

解決方法2

如果是不能避免,那就把這個0讀出來,然后扔掉即可,可以在每行后面,多根一句話:

fmt.Fscanf(file,"%d")

解決方法3

使用方法

fmt.Fscan(file,maze[i][j])

不規(guī)定格式的情況下是不會出現(xiàn)多讀0

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang 中signal包的Notify用法說明
  • golang strings包的Replace的使用說明
  • golang 中strings包的Replace的使用說明
  • Golang Printf,Sprintf,Fprintf 格式化詳解
  • Golang 并發(fā)以及通道的使用方式
  • golang 如何替換掉字符串里面的換行符\n
  • golang監(jiān)聽文件變化的實例

標(biāo)簽:海南 遼寧 西雙版納 青海 物業(yè)服務(wù) 安康 電子產(chǎn)品 儋州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《完美解決go Fscanf 在讀取文件時出現(xiàn)的問題》,本文關(guān)鍵詞  完美,解決,Fscanf,在,讀取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《完美解決go Fscanf 在讀取文件時出現(xiàn)的問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于完美解決go Fscanf 在讀取文件時出現(xiàn)的問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    汾阳市| 佛坪县| 株洲县| 平武县| 拜城县| 拉萨市| 万州区| 安徽省| 陇西县| 乐平市| 息烽县| 永新县| 红桥区| 牙克石市| 宝兴县| 巩留县| 宜阳县| 筠连县| 托里县| 行唐县| 松江区| 柘荣县| 浦城县| 扬州市| 岳西县| 军事| 镇坪县| 桃江县| 宽甸| 玛曲县| 花莲市| 宝清县| 富锦市| 思茅市| 明溪县| 三原县| 池州市| 年辖:市辖区| 双辽市| 武鸣县| 从江县|