c語言去掉一行,C語言去掉換行符

本文目錄一覽:

C語言如何把一個文本文件的某一行刪除掉?

可以用c語言的fseek()函數(stdio.h),…隨機讀寫

要知道, 一個文件打開後有一個位置指針, 指示當前讀寫位置..

順序讀寫時, 讀寫一個, 系統自動把位置指針移動到下一位置…

用fseek()就可以手動更改..

用法是fseek(FILE*(文件指針),long offset(偏移量),int whence(參考位置))

參考位取值:0 文件開頭, 1 當前位置, 2 文件最後..

作用就是將FILE*指定的文件的位置指針從參考位置移動offset字節

移動方向由offset的+/-決定..

另外用rewind()可以將位置指針恢復到文件頭..

C語言,刪除一行

刪除文件里的一行內容,後面的行向前移動一行,清空最後一行,程序如下:

假定一行不超過1000字符,

刪去第3行,L=3.

輸入輸出文件名

a.txt

#includestdio.h

void

main()

{

FILE

*fin;

fpos_t

pos_w,pos_r,pos;

int

i,k,L=3;

char

*one_line;

one_line

=

(char

*)

malloc(1000*sizeof(char));

fin

=

fopen

(“a.txt”,”rb+”);

for

(i=1;iL;i++)

fgets(one_line,999,fin);

fgetpos

(fin,pos_w);

fgets(one_line,999,fin);

//

delete

fgetpos

(fin,pos_r);

pos

=

pos_r;

while

(1

==

1)

{

fsetpos

(fin,pos);

if

(fgets(one_line,999,fin)

==NULL)

break;

fgetpos

(fin,pos_r);

pos

=

pos_w;

fsetpos

(fin,pos);

fprintf(fin,”%s”,one_line);

fgetpos

(fin,pos_w);

pos

=

pos_r;

}

pos

=

pos_w;

fsetpos

(fin,pos);

k

=

strlen(one_line);

for

(i=0;ik;i++)

fputc(0x20,fin);

fclose(fin);

}

c語言刪除文件中的指定的一行數據怎麼做

你平時應該有這樣的經歷,打開一個.txt格式的小說,在裡面刪除幾個字,系統反應卻很慢,這是為什麼呢?因為文件里的內容都是在硬盤上按順序一個字節挨着一個字節擺放的,讀取文件的時候,會從文件首地址一直讀到文件結束標記“-1”。如果能夠直接把文件裡面的幾個字節刪掉,那麼下次這個文件怎麼讀呢?怎麼區分中間那幾個字節被刪掉了呢?所以對於這些簡單的文件來說,要想直接刪除裡面的內容是不可能的。

一般有兩個方法實現這個功能:

1.把要保留的內容寫到另一個文件中,要刪掉的內容就不用寫了。

2.把要保留的內容存儲到一個字符串變量中,要刪掉的內容不用存儲,最後把這個字符串再寫回到原文件中覆蓋原來的內容。

例程:

#includestdio.h

struct data

{

    int bianhao;

    char fenlei[10];

    char ming[12];

    int shijian[3];

    float jiage;

}

void del(int num){//定義刪除指定編號的內容的函數 

    FILE *f1;//操作的文件 

    long length;//文件總長度 

    char *f2;//用於記錄要保存的內容 

    char s[100];//用於保存每次讀取的一行內容 

    int n;//用於存儲編號 

    f1=fopen(“data.txt”,”r”);//以讀的方式打開文件 

    fseek(f1,0,2);//文件指針移到文件尾 

    length=ftell(f1);//取得文件長度 

    f2=(char *)malloc(sizeof(char)*length);//給f2分配文件長度的空間 

    *f2=0;//使得f2字符串的長度初始為0 

       rewind(f1);//文件指針回到文件頭 

    while(ftell(f1)length-3){//當文件沒有結束時就依次讀取文件的每一行 

        fgets(s,100,f1);//讀取一行信息 

        n=atoi(s);//從讀取的信息取得編號 

        if(n==num) continue;//如果編號是要刪除的編號,就不用保存這一行信息了 

        strcat(f2,s);//保存讀取到的這一行信息 

    }

       fclose(f1);//關閉文件 

    f1=fopen(“data.txt”,”w”);//重新以寫的方式打開文件 

    fputs(f2,f1);//把保存的信息重新存儲到文件當中 

    fclose(f1);//關閉文件 

}

int main(){

    del(1); //調用上面定義的函數刪除指定編號的內容 

    del(3); //參數為編號 

    system(“pause”);//暫停一下 

}

怎麼用c語言刪除文件第一行

#include stdio.h

void main() {

    FILE *fin,*fout;

    int c;

 

    fin=fopen(“t.txt”,”r”);

    fout=fopen(“t.tmp”,”w”);

    while (1) {

        c=fgetc(fin);

        if (EOF==c) break;

        if (‘\n’==c) break;

    }

    if (EOF!=c)

    while (1) {

        c=fgetc(fin);

        if (EOF==c) break;

        fputc(c,fout);

    }

    fclose(fin);

    fclose(fout);

    remove(“t.txt”);

    rename(“t.tmp”,”t.txt”);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/251752.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 17:32
下一篇 2024-12-13 17:32

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論