tft每日頭條

 > 科技

 > c語言怎麼在文本文件中随機讀寫

c語言怎麼在文本文件中随機讀寫

科技 更新时间:2024-10-18 21:51:54

文件操作是編程必不可少的技能,普通文件的讀寫大家都會,就不展開說了,今天小編帶大家學習一下文件随機讀寫。

文件随機讀寫就是不按常規讀寫文件,想從哪兒入手就從哪兒入手,比如說,你聽歌時,欸,就這幾句好聽,那截下來當鈴聲,那截取點就是随機讀寫的一個位置。文件随機讀寫呢,有3闆斧,諸位請看。

c語言怎麼在文本文件中随機讀寫(C語言中文件随機讀寫是怎麼一回事)1

1.rewind()函數

rewind()函數的作用是将文件位置指針指向文件開頭,不管你的文件位置指針在哪兒指着呢,rewind()函數一出場,必須撥拉到開頭。

void rewind(FILE * stream);

在rewind()函數裡面,void表示這個函數沒有返回值,參數stream表示一個文件指針,就是把這個文件指針指向的文件的位置指針撥拉到開頭。是不是有點繞?繞就對了。stream就當作是一個文件,把stream文件的位置指針指向開頭,明白了?

2.fseek()函數

fseek()函數的作用嘛,将文件位置指針指向指定的位置,比如,往前移動一些距離,往後移動一些距離,像秤上的遊标一樣,沒見秤的,自行去百度。

int fseek(FILE * stream, long offset, int whence);

在fseek()函數裡面,參數stream還是那個文件指針,參數offset表示移動的距離,參數whence表示文件位置指針原先的位置,就是從哪兒開始移動的。whence有3個取值:

  • SEEK_SET:對應的數字值為0,表示從文件開頭進行偏移。
  • SEEK_CUR:對應的數字值為1,相對于文件位置指針當前位置進行偏移。
  • SEEK_END:對應的數字值為2,相對于文件末尾進行偏移。

fseek()函數如果調用成功,就返回0,調用失敗返回-1。

有一點呢要注意,fseek()函數呢是随便指的,如果指到一個位置,這個位置呢是一個漢字經過字符轉換來的,一個漢字對應三個字符,那麼要切時候可能要把漢字切開的,這時候就亂碼了,所以fseek()函數呢,最好用到二進制文件中,不要用到文本文件中。

3.ftell()函數

ftell()函數用于獲取文件位置指針的當前位置,就是fseek()函數你把文件位置指針挪哪兒去了,你得告訴我一聲啊,那ftell()函數呢就是告訴你文件位置指針的位置。

long ftell(FILE * stream);

在ftell()函數中,參數stream還是文件指針,ftell()函數調用成功,返回文件位置指針的當前位置,調用失敗,返回-1L,就是-1。

好,學完了三闆斧,實踐起來用一下,先在項目目錄下創建個文件,比如hello.txt,就随機讀寫這個hello.txt文件,上代碼。

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { FILE* fp; char s[16] = { 0 }; fp = fopen("hellow.txt", "r"); fseek(fp, 7, SEEK_SET); fread(s, 1, 15, fp); fclose(fp); printf("%s", s); return 0; }

關于文件随機讀寫呢,就這3闆斧,第一闆斧先把文件位置指針指向文件開頭,調用rewind()函數;第二闆斧調用fseek()函數移動文件位置指針;第三闆斧調用ftell()函數告訴我文件位置指針在哪兒。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved