最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

先要明白Fscanf的工作原理

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

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

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

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

如下圖Idea

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

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

今天在使用Fscanf讀矩陣的時(shí)候遇到了一個(gè)問題,發(fā)現(xiàn)每次遇到換行,就多讀一個(gè)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會(huì)讀一個(gè)0進(jìn)去,在linux下?lián)Q行符只有\(zhòng)n

解決方法1

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

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

解決方法2

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

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)文章

  • Golang實(shí)現(xiàn)常見的限流算法的示例代碼

    Golang實(shí)現(xiàn)常見的限流算法的示例代碼

    限流是項(xiàng)目中經(jīng)常需要使用到的一種工具,一般用于限制用戶的請(qǐng)求的頻率,也可以避免瞬間流量過大導(dǎo)致系統(tǒng)崩潰,或者穩(wěn)定消息處理速率,本文主要介紹了使用Go實(shí)現(xiàn)常見的限流算法,希望對(duì)大家有所幫助
    2023-04-04
  • golang使用aes庫(kù)實(shí)現(xiàn)加解密操作

    golang使用aes庫(kù)實(shí)現(xiàn)加解密操作

    這篇文章主要介紹了golang使用aes庫(kù)實(shí)現(xiàn)加解密操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-12-12
  • Golang使用singleflight解決并發(fā)重復(fù)請(qǐng)求

    Golang使用singleflight解決并發(fā)重復(fù)請(qǐng)求

    高并發(fā)的場(chǎng)景下,經(jīng)常會(huì)出現(xiàn)并發(fā)重復(fù)請(qǐng)求資源的情況,singleflight是golang內(nèi)置的一個(gè)包,這個(gè)包提供了對(duì)重復(fù)函數(shù)調(diào)用的抑制功能,所以下面我們就來(lái)看看如何使用它解決并發(fā)重復(fù)請(qǐng)求吧
    2023-08-08
  • go swagger生成接口文檔使用教程

    go swagger生成接口文檔使用教程

    這篇文章主要為大家介紹了go swagger生成接口文檔使用教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • golang實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能

    golang實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能

    這篇文章主要介紹了golang實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能,文章通過golang導(dǎo)出excel文件返回給web,實(shí)現(xiàn)瀏覽器導(dǎo)出excel文件功能,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • 基于Golang編寫貪吃蛇游戲

    基于Golang編寫貪吃蛇游戲

    這篇文章主要為大家學(xué)習(xí)介紹了Golang如何基于終端庫(kù)termbox-go做個(gè)功能較簡(jiǎn)單的貪吃蛇游戲,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值
    2023-07-07
  • Golang中基礎(chǔ)的命令行模塊urfave/cli的用法說明

    Golang中基礎(chǔ)的命令行模塊urfave/cli的用法說明

    這篇文章主要介紹了Golang中基礎(chǔ)的命令行模塊urfave/cli的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-12-12
  • 一文帶你深入了解Go語(yǔ)言中切片的奧秘

    一文帶你深入了解Go語(yǔ)言中切片的奧秘

    切片是數(shù)組的一個(gè)引用,因此切片是引用類型。但自身是結(jié)構(gòu)體,值拷貝傳遞。本文將通過示例帶大家一起探索一下Go語(yǔ)言中切片的奧秘,感興趣的可以了解一下
    2022-11-11
  • Golang使用Zookeeper實(shí)現(xiàn)分布式鎖

    Golang使用Zookeeper實(shí)現(xiàn)分布式鎖

    分布式鎖是一種在分布式系統(tǒng)中用于控制并發(fā)訪問的機(jī)制,ZooKeeper?和?Redis?都是常用的實(shí)現(xiàn)分布式鎖的工具,本文就來(lái)使用Zookeeper實(shí)現(xiàn)分布式鎖,希望對(duì)大家有所幫助
    2024-02-02
  • Go?http請(qǐng)求排隊(duì)處理實(shí)戰(zhàn)示例

    Go?http請(qǐng)求排隊(duì)處理實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Go?http請(qǐng)求排隊(duì)處理實(shí)戰(zhàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評(píng)論

吴桥县| 乃东县| 江达县| 江西省| 越西县| 达拉特旗| 华坪县| 侯马市| 滦平县| 卢湾区| 垣曲县| 祁连县| 江达县| 隆昌县| 垫江县| 沙坪坝区| 西丰县| 大姚县| 鲁山县| 清水河县| 色达县| 苗栗市| 汶上县| 兴城市| 玛多县| 永春县| 阿巴嘎旗| 张家界市| 响水县| 阳城县| 齐河县| 阿鲁科尔沁旗| 河池市| 新和县| 兴山县| 玉林市| 台南县| 惠来县| 裕民县| 措勤县| 乃东县|