Linux C学习--getline()函数
生活随笔
收集整理的這篇文章主要介紹了
Linux C学习--getline()函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
getline()函數是什么?百度百科這樣解釋:
getline不是C庫函數,而是C++庫函數。它會生成一個包含一串從輸入流讀入的字符的字符串,直到以下情況發生會導致生成的此字符串結束。1)到文件結束,2)遇到函數的定界符,3)輸入達到最大限度。 linux標準C中使用條件: #define _GNU_SOURCE#include <stdio.h> 函數聲明: ssize_t getline(char **lineptr, size_t *n, FILE *stream); 返回值 成功:返回讀取的字節數。 失敗:返回-1。 參數: lineptr:指向存放該行字符的指針,如果是NULL,則有系統幫助malloc,請在使用完成后free釋放。 n:如果是由系統malloc的指針,請填0 stream:文件描述符 那我們linux c中如何使用getline()函數呢? C 有 fgets(), gets() 函數,也有getline.用于讀取一行字符直到換行符,包括換行符。這個和我們前面那篇關于標準輸入輸出函數 流與緩沖區那篇中內容有聯系, printf() scanf() 屬于行緩沖,讀取一行數據(遇到'\n')便會刷新。 我們可以利用getline()一行一行的讀取數據,下面我們做個小實驗:首先創建一個文件,在文件中現實一些內容: [cpp]?view plaincopy
對比一下line.txt中的內容,可以看到每一行都被正確的讀取;。 這里簡單提一下fopen()函數,fopen()函數是基于數據流的I/O操作中,用來打開一個文件,或者說打開一個數據流,打開數據流以后,就可以對數據流繼續擰輸入和輸出的操作。C語言中stdin、stdout、stderr分別是標準輸入流、標準輸出流及標準出錯流的邏輯目的,他們都默認對應相應的物理終端。在程序運行伊始,不需要進行open()操作,流自動打開。關于文件描述符和數據流的區別,后面會開文章專門寫這一篇 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Linux C学习--getline()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LayaIDE + FGUI + Lay
- 下一篇: linux curl模拟登录网页