c語言中怎樣向檔案中新增資訊,c語言中怎樣向一個檔案中新增資訊

2021-12-19 05:49:52 字數 4197 閱讀 5144

1樓:

fopen函式開啟一個檔案,然後fwrite函式向檔案中寫內容 ,最後,fclose這個檔案

2樓:匿名使用者

使用這幾個函式。

int fseek (file *stream,long offset,int fromwhere);

long ftell(file *stream);

int rewind(file *stream);

可以實現在一個檔案的任意位置新增資訊。但除了在檔案尾新增資訊之外,你寫將要插入位置後面的檔案內容讀到緩衝,然後定位檔案偏移量插入資料,在將讀出來的寫入。

因為檔案在磁碟上是連續存放的,不可能說直接在中間插入內容而不覆蓋原來的,別的語言提供的都是自己按照上述思路寫的。

例程:#include

#include

#include

#include

#include

/* 讀出檔案放到陣列中,新增資料插入到該陣列中;

重新將陣列中的資料寫入該檔案中

*/void main(int argc,char * agrv)

else

else

i++;}}

fclose(fp);

//開啟儲存檔案,將排好序的資料重新寫入檔案中

if ((fp=fopen("c:\\scorelist.txt","w"))==null)

else

//移動資料重新對陣列排序,從後往前排序

int m = i;

while (i>j)

strcpy(fname[j],name);

strcat(fname[j],"\n");

fscore[j] = sum;

//寫入文字檔案

int k=0;

while(k<=m)

}fclose(fp);}

3樓:匿名使用者

iofstream檔案流

c語言中怎麼插入檔案記錄?

4樓:匿名使用者

1、可以使用fseek()來指定檔案位置。

函式原型:int fseek(file *stream, long offset, int fromwhere);

函式說明:函式設定檔案指標stream的位置。如果執行成功,stream將指向以fromwhere(偏移起始位置:

檔案頭0(seek_set),當前位置1(seek_cur),檔案尾2(seek_end))為基準,偏移offset(指標偏移量)個位元組的位置。如果執行失敗(比如offset超過檔案自身大小),則不改變stream指向的位置。

返回值:如果執行成功,stream將指向以fromwhere為基準,偏移offset(指標偏移量)個位元組的位置,函式返回0。如果執行失敗(比如offset超過檔案自身大小),則不改變stream指向的位置,函式返回一個非0值。

2、例程:向test.txt的末尾新增「this is a text"的字串。

#include

#include

int main()

fseek(fp, 0,seek_end);

fwrite(szwrite, strlen(szwrite) * sizeof(char), 1, fp);

fclose(fp);

return 0;}

5樓:匿名使用者

用cfile來讀寫文字檔案,之前你的文字里有一些具體職工的資訊了,所以:1,按照之前每一個職工的資訊,在里程式裡寫出相應的資料結構和讀取演算法,用連結串列儲存。2,新增,如果是在末尾,直接在連結串列末端加入一個新職工的資訊,在寫出逆向的讀取文字的演算法,從寫之前文字里的所有資料。

如果是在一個職工前,那就在連結串列中查詢到相應的職工位置,在那裡插入新的職工資訊。

6樓:匿名使用者

可以用fwrite(),fread()對連結串列讀寫,追加內容a+方式開啟檔案即可

7樓:匿名使用者

這裡面是c語言讀寫檔案的例子。然後我自己寫了一個,,你看看,,#include

int main()

fscanf( fp, "%lf", &n ); // 讀入這個數fclose( fp ); // 關閉讀檔案n = n * n; // 平方

fp = fopen( "one.out", "w" );

if ( !fp )

fprintf( fp, "%g", n ); // 向檔案寫入這個數

fclose( fp ); // 關閉寫檔案puts( "操作完成!" );

return 0;}

用c語言建立一個txt檔案,並且寫入資料

8樓:雪城風嘉

#include

int main()

for(int i=0;i<10;i++)

fprintf(fpwrite,"%d ",i);

fclose(fpwrite);

//下面是讀資料,將讀到的資料存到陣列a[10]中,並且列印到控制檯上

int a[10]=;

file *fpread=fopen("data.txt","r");

if(fpread==null)

for(int i=0;i<10;i++)

getchar();//等待

return 1;

}

擴充套件資料:

c語言最常用的檔案使用方式及其含義

1、"r".為讀而開啟文字檔案.(不存在則出錯)

2、"rb".為讀而開啟二進位制檔案.

3、"w".為寫而開啟文字檔案.(若不存在則新建,反之,則從檔案起始位置寫,原內容將被覆蓋)

4、"wb".為寫而開啟二進位制檔案.

5、"a".為在檔案後面新增資料而開啟文字檔案.(若不存在,則新建;反之,在原檔案後追加)

6、"ab".為在檔案後面新增資料而開啟一個二進位制檔案.

7、"r+".為讀和寫而開啟文字檔案.(讀時,從頭開始;在寫資料時,新資料只覆蓋所佔的空間,其後不變)

8、"rb+".為讀和寫而開啟二進位制檔案.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.

9、"w+".首先建立一個新檔案,進行寫操作,隨後可以從頭開始讀.(若檔案存在,原內容將全部消失)

10、"wb+".功能與"w+"同.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.

11、"a+".功能與"a"相同;只是在檔案尾部新增新的資料後,可以從頭開始讀.

12、"ab+".功能與"a+"相同;只是在檔案尾部新增新資料之後,可以由位置函式設定開始讀的起始位置.

9樓:匿名使用者

#include

#include

#include

int main(void)

;printf("請輸入儲存的路徑:");

scanf("%s",path);

int n=6;

f=fopen(path,"w+");

fprintf(f,"yes you are right \n");

fprintf(f,"y=4+%d\n",n);

fclose(f);

printf("已經儲存,快去看吧");

system("pause");

return 0;}

10樓:dota要有平常心

#include

using namespace std;

void main()

string str = "yes you are rigth !\n";

fwrite(str.c_str(),str.length(),sizeof(char),fout);

char buf[56];

memset(buf,0,56);

sprintf(buf,"y=4+%d\n",x);

str = string(buf);

fwrite(str.c_str(),str.length(),sizeof(char),fout);

fclose(fout);}

c 語言中建立標頭檔案,在c語言中怎樣建立標頭檔案

有區別,標頭檔案不參加編譯,只是呼叫,可以定義類,結構體,聯合體等等原始檔要參見編譯,並且可以包含標頭檔案,main 函式只能在原始檔中,定義函式,標頭檔案可以進行的,原始檔都可以進行,反之不然。還有他們拓展名不同,頭.h 原始檔.cpp 在c語言中怎樣建立標頭檔案 c 怎麼自己建立標頭檔案 1 開...

c語言如何向檔案中輸入字串,c語言如何向一個檔案中輸入字串

1.通過fopen開啟檔案,fputs像檔案寫入資料,fclose關閉檔案。include int main 2.file fopen const char fname,const char mode fopen 函式開啟由fname 檔名 指定的檔案,並返回一個關聯該檔案的流.如果發生錯誤,fop...

C語言檔案指標,C語言中通過檔案指標訪問檔案有什麼好處?

你還沒解決嗎?你的bug應該不是檔案方式的問題。我才起來給你除錯,應該是 這一句的問題 fp1是檔案指標,fopen s函式返回的值型別是errno t 也就是int型別的值,因fp1錯誤的使用,而接受了fopen s函式的返回值,此時fp1指標的值變成0x0000000d fopen s函式的返回...