欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年03月22日 10:59:32   作者:煙雨任大  
這篇文章主要介紹了完美解決go Fscanf 在讀取文件時(shí)出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

先要明白Fscanf的工作原理

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

遇到\r時(shí)就會(huì)把\r替換成0

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

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

如下圖Idea

文件右下角LF點(diǎn)擊就可以更換換行符

補(bǔ)充:go中的Fscanf讀到0的問(wèn)題

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

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會(huì)讀一個(gè)0進(jìn)去,在linux下?lián)Q行符只有\(zhòng)n

解決方法1

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

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

解決方法2

如果是不能避免,那就把這個(gè)0讀出來(lái),然后扔掉即可,可以在每行后面,多根一句話(huà):

fmt.Fscanf(file,"%d")

解決方法3

使用方法

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

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

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

相關(guān)文章

  • 如何go語(yǔ)言比較兩個(gè)對(duì)象是否深度相同

    如何go語(yǔ)言比較兩個(gè)對(duì)象是否深度相同

    這篇文章主要介紹了如何go語(yǔ)言比較兩個(gè)對(duì)象是否深度相同,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • golang不到30行代碼實(shí)現(xiàn)依賴(lài)注入的方法

    golang不到30行代碼實(shí)現(xiàn)依賴(lài)注入的方法

    這篇文章主要介紹了golang不到30行代碼實(shí)現(xiàn)依賴(lài)注入的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 詳解如何用Golang處理每分鐘100萬(wàn)個(gè)請(qǐng)求

    詳解如何用Golang處理每分鐘100萬(wàn)個(gè)請(qǐng)求

    在項(xiàng)目開(kāi)發(fā)中,我們常常會(huì)遇到處理來(lái)自數(shù)百萬(wàn)個(gè)端點(diǎn)的大量POST請(qǐng)求,本文主要介紹了Golang實(shí)現(xiàn)處理每分鐘100萬(wàn)個(gè)請(qǐng)求的方法,希望對(duì)大家有所幫助
    2023-04-04
  • 簡(jiǎn)化Go開(kāi)發(fā)提高生產(chǎn)力的強(qiáng)大工具及使用詳解

    簡(jiǎn)化Go開(kāi)發(fā)提高生產(chǎn)力的強(qiáng)大工具及使用詳解

    作為?Go?開(kāi)發(fā)人員,應(yīng)該都知道維持簡(jiǎn)潔高效開(kāi)發(fā)工作流程的重要性,為了提高工作效率和代碼質(zhì)量,簡(jiǎn)化開(kāi)發(fā)流程并自動(dòng)執(zhí)行重復(fù)性任務(wù)至關(guān)重要,在本文中,我們將探討一些強(qiáng)大的工具和技術(shù),它們將簡(jiǎn)化?Go?開(kāi)發(fā)過(guò)程,助力您的編碼之旅
    2023-10-10
  • 詳解Go操作supervisor xml rpc接口及注意事項(xiàng)

    詳解Go操作supervisor xml rpc接口及注意事項(xiàng)

    這篇文章主要介紹了Go操作supervisor xml rpc接口及注意事項(xiàng),管理web,在配置文件中配置相關(guān)信息,通過(guò)go-supervisor的處理庫(kù)進(jìn)行操作,需要的朋友可以參考下
    2021-09-09
  • 從源碼深入理解golang?RWMutex讀寫(xiě)鎖操作

    從源碼深入理解golang?RWMutex讀寫(xiě)鎖操作

    這篇文章主要介紹了從源碼深入理解golang?RWMutex讀寫(xiě)鎖操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 基于Golang實(shí)現(xiàn)YOLO目標(biāo)檢測(cè)算法

    基于Golang實(shí)現(xiàn)YOLO目標(biāo)檢測(cè)算法

    目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要任務(wù),它不僅可以識(shí)別圖像中的物體,還可以標(biāo)記出物體的位置和邊界框,YOLO是一種先進(jìn)的目標(biāo)檢測(cè)算法,以其高精度和實(shí)時(shí)性而聞名,本文將介紹如何使用Golang實(shí)現(xiàn)YOLO目標(biāo)檢測(cè)算法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2023-11-11
  • linux下通過(guò)go語(yǔ)言獲得系統(tǒng)進(jìn)程cpu使用情況的方法

    linux下通過(guò)go語(yǔ)言獲得系統(tǒng)進(jìn)程cpu使用情況的方法

    這篇文章主要介紹了linux下通過(guò)go語(yǔ)言獲得系統(tǒng)進(jìn)程cpu使用情況的方法,實(shí)例分析了Go語(yǔ)言使用linux的系統(tǒng)命令ps來(lái)分析cpu使用情況的技巧,需要的朋友可以參考下
    2015-03-03
  • 圖文詳解Go程序如何編譯并運(yùn)行起來(lái)的

    圖文詳解Go程序如何編譯并運(yùn)行起來(lái)的

    Go語(yǔ)言這兩年在語(yǔ)言排行榜上的上升勢(shì)頭非常猛,Go語(yǔ)言雖然是靜態(tài)編譯型語(yǔ)言,但是它卻擁有腳本化的語(yǔ)法,下面這篇文章主要給大家介紹了關(guān)于Go程序如何編譯并運(yùn)行起來(lái)的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 代碼整潔利器go?fmt命令使用詳解

    代碼整潔利器go?fmt命令使用詳解

    這篇文章主要為大家介紹了代碼整潔利器go?fmt命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評(píng)論