當前位置:首頁 » 編程語言 » c語言刪除一個txt
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言刪除一個txt

發布時間: 2022-07-21 22:04:11

『壹』 c語言中,如何刪除一個txt文檔中的內容

c語言修改txt文檔的內容只能是先全部讀入內存中,然後修改,,再全部寫入文件。
所以就需要先把文件的內容fread(或者別的方式也可以)讀入字元數組中,,然後在數組中刪除你想要刪除的字元,,再fwrite(注意與之前讀的方式對應)到文件中。。。

『貳』 如何用c語言刪除txt文件中的數據

因為式結構定義的 基本類型是數組 所以 例如刪除 name[1] addr[1](也就是第二個信息)可以將個數組後面的向前移動用一個循環

『叄』 C語言怎麼清除一個TXT文件中所有的信息

fopen
w模式,隨便打開就清除

~~~~~

『肆』 C語言中刪除一個txt文件

你試試看這個程序,我先創建一個文件,然後關閉以後刪除這個文件,在vc裡面通過運行了,而且我也找不到這個文件了,你試試看
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
FILE *file;
file=fopen("1.txt","w");
fclose(file);
system("del 1.txt");
return 0;
}
你看看你之前運行的程序都關干凈了么,你把你具體程序發出來餓,這樣截一段怎麼看。就光我這幾句語句的話我vc6。0運行以後是沒有文件的了

『伍』 如何用C語言程序刪除電腦里所有的txt文件

在windows下面,可以使用system()命令執行dos命令,來達到刪除的效果。
還有個函數,unlink(),可以用來刪除文件。
使用時要包含必要的頭文件。

示例:
#include<stdio.h>

int main()
{
unlink("你的桌面地址\\123.txt");//你的桌面地址/123.txt
//或者, system("del 你的桌面地址\\123.txt");//使用時包含<dos.h>
return 0;
}
--------------------------------------------
你又補充了哦,
好吧,你的地址錯誤了。
system("del C:\Users\Administrator\Desktop\\123.txt")
修改為system("del C:\\Users\\Administrator\\Desktop\\123.txt")
因為,\在""是轉義的意思,兩個\\代表\
或者使用,system("del C:/Users/Administrator/Desktop/123.txt");
---------------------------------------------
你使用的是CPP,我看看,我使用C編譯通過了,好像是說你的system定義有問題,頭文件不對。
試了下,在使用CPP,也可以啊,那應該是你編譯環境有問題吧,我使用的是GCC。無能為力了。
你試看看unlink.
---------------------------------------------
用gcc編譯c程序的時候 經常會出現
implicit declaration of function '...' 的warning

1 沒有把函數所在的c文件生成.o目標文件;
2 在函數所在的c文件中聲明了,但是沒有在調用它的.h或.c文件中聲明;
3 其頭文件都聲明過了,所調用的函數的原型與所傳的實參類型不匹配.

『陸』 怎麼用C語言寫程序把一個".txt"格式的文檔刪除

用unlink函數,參數為文件名

int unlink(const char *filename);

比如你的txt文件叫a.txt

就調用unlink("a.txt");即可

『柒』 用C語言刪除一個TXT文件中的超鏈接

本代碼測試數據:

超銜接格式我用的普通html的a標簽格式,識別前後匹配字元串分別是"<a href="和"</a>"。

如果你想要識別其他字元串並刪除,請修改函數int deleteHREF(char *str,int len)中的代碼:

char strB[]="<a href=",strE[]="</a>";

程序功能說明:

識別每行數據中對應的超銜接字元串,並刪除。可以一行對應多個超銜接文本。

不識別跨行的超銜接!!!!(一條超銜接,分兩行寫,這種不識別,注意!!)。

運行後,會在原文件的地址下新建一個new開頭的文件存放刪除後的數據。

比如源數據c:list.txt。執行代碼後就會新建c: ew_list.txt。這就是你要的數據。

#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
#defineMAXC500//預估行最大字元數量,必須大於實際數量,可改大,實際代碼會動態分配空間,不會浪費內存
#defineMAXFPATH100//路徑最大字元
#defineMAXFNAME50//文件名最大字元
typedefstructfpInfo
{
charpath[MAXFPATH];
charfname[MAXFNAME];
char**content;
intnrow;//行數
int*nCol;//實際每行字數(同時nCol[]+1也是行內存大小)
}FPINFO;
FPINFO*init();
voidprintfTXT(FPINFO*fpInfo);//列印文本內容
voidmeError(void*p);//內存申請失敗
intdeleteHREF(char*str,intlen);//刪除一行字元串中超銜接文本,刪除成功返回1,失敗返回0
intdelStr(intindexB,intindexE,char*str);//刪除str中下標indexB到indexE的字元,返回刪除後的字元串長度
voiddelFromTXT(FPINFO*fpInfo);//從文本中刪除超銜接
intwriteFile(FPINFO*fpInfo);//一次寫入一行
intmain()
{

FPINFO*fpInfo=NULL;
fpInfo=init();
if(fpInfo)
printfTXT(fpInfo);
delFromTXT(fpInfo);
printfTXT(fpInfo);
writeFile(fpInfo);

return0;
}
voiddelFromTXT(FPINFO*fpInfo)//從文本中刪除超銜接
{
inti;
printf(" 開始從文本中刪除所有超銜接內容 ");
for(i=0;i<fpInfo->nrow;i++)
deleteHREF(fpInfo->content[i],fpInfo->nCol[i]);
printf("刪除完成 ");
}
intdeleteHREF(char*str,intlen)//刪除一行字元串中超銜接文本,刪除成功返回1,失敗返回0
{
inti,m,n,flag,flagB,flagE,lenB,lenE,indexB,indexE;
charstrB[]="<ahref=",strE[]="</a>";
lenB=strlen(strB),lenE=strlen(strE);
while(1)
{
flag=0;
flagB=0;
flagE=0;
for(i=0;i<len;i++)
{
if(flagB)//首字元串匹配成功,開始尋找尾字元串
{
m=i;
for(n=0;n<lenE;n++)//對比超銜接尾字元串
{
if(str[m]!=strE[n])
break;
m++;
}
if(n==lenE)//尾字元串也匹配成功
flagE=1,indexE=m-1;
}
else
{
m=i;
for(n=0;n<lenB;n++)//對比超銜接首字元串
{
if(str[m]!=strB[n])
break;
m++;
}
if(n==lenB)//首字元串匹配成功,下次循環從對應首字元串之後開始
flagB=1,i=m-1,indexB=m-lenB;
}

if(flagB&&flagE)//首尾都匹配說明找到一個完整的銜接,執行刪除銜接,行字元串移位,並開始再次檢查該行字元串是否有其他銜接
{
len=delStr(indexB,indexE,str);
flag=1;
break;
}
}
if(!flag)//復查沒有找到新的匹配字元串,結束查找
break;
}
return0;
}
intdelStr(intindexB,intindexE,char*str)//刪除str中下標indexB到indexE的字元,返回刪除後的字元串長度
{
str[indexB]=0;
strcat(str,&str[indexE+1]);
returnstrlen(str);
}
voidprintfTXT(FPINFO*fpInfo)//列印文本內容
{
inti;
printf("當前txt文本中的內容是: ---------------- ");
for(i=0;i<fpInfo->nrow;i++)
printf("%s ",fpInfo->content[i]);
printf("---------------- ");
}
FPINFO*init()
{
introw=0,len=0,*ncSave=NULL;
FILE*fp=NULL;
charfilePath[MAXFPATH+MAXFNAME]={0};
charstr[MAXC]={0},*rCtt=NULL,**cSave=NULL;
FPINFO*fpInfo=(FPINFO*)malloc(sizeof(FPINFO));
meError(fpInfo);
printf("請輸入要讀取的文件路徑(不包含文件名,小於%d個字元): ",MAXFPATH);
scanf("%s",fpInfo->path);
printf("請輸入要讀取的文件名稱(小於%d個字元): ",MAXFNAME);
scanf("%s",fpInfo->fname);

strcat(filePath,fpInfo->path);
strcat(filePath,fpInfo->fname);
fpInfo->content=NULL;
fpInfo->nCol=NULL;

fp=fopen(filePath,"rt+");
if(!fp)
{
printf("文件打開失敗! ");
returnNULL;
}
fseek(fp,0,SEEK_SET);
while(fgets(str,MAXC,fp))
{
len=strlen(str);
row++;
if(!fpInfo->content)
fpInfo->content=(char**)malloc(sizeof(char*)*row);
else
{
cSave=realloc(fpInfo->content,sizeof(char*)*row);
if(cSave)
fpInfo->content=cSave;
}
fpInfo->nrow=row;
if(!fpInfo->nCol)
fpInfo->nCol=(int*)malloc(sizeof(int)*row);
else
{
ncSave=realloc(fpInfo->nCol,sizeof(int)*row);
fpInfo->nCol=ncSave;
}

fpInfo->nCol[row-1]=len;


rCtt=(char*)malloc(sizeof(char)*len+1);
meError(fpInfo->content);
meError(rCtt);
memset(rCtt,0,len+1);
strcpy(rCtt,str);
fpInfo->content[row-1]=rCtt;
memset(str,0,MAXC);

}
fclose(fp);
returnfpInfo;
}
intwriteFile(FPINFO*fpInfo)
{
charfilePath[MAXFPATH+MAXFNAME+1]={0};
inti,row=fpInfo->nrow;
FILE*fp=NULL;
strcat(filePath,fpInfo->path);
strcat(filePath,"new_");
strcat(filePath,fpInfo->fname);


fp=fopen(filePath,"w+");
if(!fp)
{
printf("文件創建失敗! ");
return0;
}
fseek(fp,0,SEEK_SET);
printf(" ----開始寫入新的文件---- ");
for(i=0;i<row;i++)
fprintf(fp,"%s",fpInfo->content[i]);
printf("----新數據保存完成---- ");
fclose(fp);
return1;
}
voidmeError(void*p)//內存申請失敗
{
if(p==NULL)
{
printf(" 異常:內存申請失敗!回車結束程序! ");
while(getch()!=' ');
exit(0);
}
}

『捌』 C語言如何將一個txt文件內的指定字元串刪除..在線等

首先,打開一個tmp.txt的文件保存結果文件
FILE* out=fopen("tmp.txt","w");
FILE* in=fopen("原文件.txt","r");

循環採用fgets從in中讀入字元串,fgets可以指定讀入的最大字元串長度,因此可以一部分一部分地讀,處理到文件結束為止
然後,因為你是要對完整的單詞進行處理,所以fgets完之後再繼續fgetc一個一個的字母,直到讀到一個','再結束,這樣就可以在內存中讀到一部分的完整單詞

char str[1000]; //開個1000長度的字元串數組
int len;
while (fgets(str,900,in)!=NULL) //讀900個,留點空間後面可以讀入直完整單詞
{
len=strlen(str);
if (str[len-1]=='\n')
{
str[len-1]='\0'; //fgets還有個特點,碰到回車會結束,所以如果碰到回車,就會把結尾的回車也讀進去,要去掉
len--;
}
while (str[len-1]!=',') //把最後的單詞讀完整
{
str[len]=fgetc(in);
if (str[len]==EOF) break;
len++;
}
str[len]='\0';
//接下來對str中的單詞進行處理啦,這里自己寫,逐個地讀,判斷是不是要刪除的那個,不是的話,就寫入out文件中
}
//最後,刪除原文件,把tmp.txt代替原文件
fclose(in);
fclose(out);
remove("原文件.txt");
rename("tmp.txt","原文件.txt");

『玖』 c語言 怎麼將一個txt文件的所有信息刪除

c語言將一個txt文件的所有信息刪除的實現方法是以寫模式打開一個同名文件,用來覆蓋原來的文件,這樣原來文件的內容將被刪除。
具體顯示方法如下:
int
main()
{
int
i;
FILE
*data;
data
=
fopen("peding.txt",
"w");
if(!data)
{
perror("對不起,文件找不到");
return
1;
}
/*循環寫入100次
*/
for(i
=
0;
i
<
100;
i++)
writedata(data);
fclose(data);
return
0;
}
/*寫入內容不操作*/
void
writedata(FILE
*data)
{
//刷新緩沖區
/*
do
other
stuff
*/
...
}

『拾』 C語言 已存在一個txt文件,需要將它的內容完全刪除並寫入新的內容,代碼應該怎麼寫

下面是個例子,可以參考下。

char path[256] = "/tmp/xxx.txt"; // 文件路徑為/tmp/xxx.txt
File *fp = fopen(path, "w"); //以寫方式打開,已存在的文件將內容清空,只允許寫
fwrite("dadasdasdas", strlen("dadasdasdas"), 1, fp); //把新的內容寫入
fclose(fp); //關閉文件句柄

請採納,謝謝