❶ c語言:如何根據需要刪除文件中特定的行
C語言文件操作有覆蓋和追加兩種模式,但不提供插入模式。所以要在文件中指定行進行刪除或者插入,需要按照如下流程操作: 1、以只讀打開文件; 2、將文件逐行讀入到內存中; 3、關閉文件; 4、在內存中對指定行插入或者刪除; 5、以只寫打開文件; 6、將修改後的數據寫入文件; 7、關閉文件。參考代碼:假定文件最多100行,執行刪除第5行,並在原第8,9行中間插入一行數據為例,代碼如下: #include #include char buf[100][1000];int main(){ FILE *fp; char *s="abcdef\n";//要插入的數據 int i=0; int n=0; fp = fopen("my.txt", "r");//讀方式打開文件 while(fgets(buf[n], 1000, fp) != EOF)//循環讀取所有數據 n++; fclose(fp);//關閉文件。 for(i = 4; i<7; i ++)//刪除第五行 strcpy(buf[i],buf[i+1]); strcpy(buf[7], s);//插入到第8行。 fp=fopen("my.txt", "w");//寫方式打開文件。 for(i = 0; i < n; i ++)//寫入所有處理後的數據。 fputs(buf[i], 1000, fp); fclose(fp);//關閉文件。 return 0; }
❷ C語言如何把一個文本文件的某一行刪除掉
可以用c語言的fseek()函數(stdio.h),...隨機讀寫
要知道, 一個文件打開後有一個位置指針, 指示當前讀寫位置..
順序讀寫時, 讀寫一個, 系統自動把位置指針移動到下一位置...
用fseek()就可以手動更改..
用法是fseek(FILE*(文件指針),long offset(偏移量),int whence(參考位置))
參考位取值:0 文件開頭, 1 當前位置, 2 文件最後..
作用就是將FILE*指定的文件的位置指針從參考位置移動offset位元組
移動方向由offset的+/-決定..
另外用rewind()可以將位置指針恢復到文件頭..
❸ c語言中的listView中如何刪除選中行的數據
你要刪除資料庫中的數據,還是控制項顯示的數據。
若是前者,根據對應主鍵執行腳本就行。
若是後者,則需要更改數據源,重新綁定。
例如:
intIndex=0;if(this.listView1.SelectedItems.Count>0)//判斷listview有被選中項
{
Index=this.listView1.SelectedItems[0].Index;//取當前選中項的index,SelectedItems[0]這必須為0
listView1.Items[Index].Remove();
}
❹ c語言實現文件內容某行刪除
整體思路如下:
首先,找到找到要刪除的那一行的行號,假如是j行,然後把指向文件的指針定位到j+1行處(可以使用fseek函數,Linux下可以使用lseek函數);
讀取一行(此時的文件指針已到達改行的末尾處,也可以認為是到了下一行的開始處),再把文件指針定位到j行,把剛才讀出的再寫會,使用循環直至文件結束。
簡單的說就是把後面的每一行一行一行的讀出,再一行一行的寫到前面一行。
❺ c語言中清除一行的命令
試一下這個:
#include <stdio.h>
int main()
{
float I,n;
printf("1234\n");
printf("3456");
printf("\b\b\b\b");
return 0;
}
❻ C# 中 DataGredVIew 控制項 清除所有行的代碼怎麼寫.
for(int i=0;i<Row;i++){
this.GridView1.Romove....//有個刪除的函數,具體不記得了你找找 看,有幾行刪幾行就行了。
}
❼ c語言刪除文件中的指定的一行數據怎麼做
你平時應該有這樣的經歷,打開一個.txt格式的小說,在裡面刪除幾個字,系統反應卻很慢,這是為什麼呢?因為文件里的內容都是在硬碟上按順序一個位元組挨著一個位元組擺放的,讀取文件的時候,會從文件首地址一直讀到文件結束標記「-1」。如果能夠直接把文件裡面的幾個位元組刪掉,那麼下次這個文件怎麼讀呢?怎麼區分中間那幾個位元組被刪掉了呢?所以對於這些簡單的文件來說,要想直接刪除裡面的內容是不可能的。
一般有兩個方法實現這個功能:
1.把要保留的內容寫到另一個文件中,要刪掉的內容就不用寫了。
2.把要保留的內容存儲到一個字元串變數中,要刪掉的內容不用存儲,最後把這個字元串再寫回到原文件中覆蓋原來的內容。常式:
#include<stdio.h>
structdata
{
intbianhao;
charfenlei[10];
charming[12];
intshijian[3];
floatjiage;
}
voiddel(intnum){//定義刪除指定編號的內容的函數
FILE*f1;//操作的文件
longlength;//文件總長度
char*f2;//用於記錄要保存的內容
chars[100];//用於保存每次讀取的一行內容
intn;//用於存儲編號
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);//關閉文件
}
intmain(){
del(1);//調用上面定義的函數刪除指定編號的內容
del(3);//參數為編號
system("pause");//暫停一下
}
❽ 怎麼用c語言刪除文件中的某一行記錄,急啊!
把要刪除記錄的後續記錄讀進來,在從要刪除的位置寫回去.不就把要刪除的數據給覆蓋了嗎.
❾ C語言,清空輸入行的語句 while(getchar()!='\n') continue;
一行都是以換行符結尾,也就是'\n',這個程序遇到換行符就會終止循環,不是換行符就一直循環下去,所以就能把一行清空了。那個continue可以去掉。