當前位置:首頁 » 編程語言 » 寫入文件C語言

寫入文件C語言

發布時間: 2022-12-31 02:07:16

1. c語言對文件的數據寫入的方法

將if((fp=fopen("e:\\文件讀寫.txt","r"))==NULL)中的判斷條件改成 if(fp==NULL)就行,因為你前面已經定義了fp=fopen("e:\\文件讀寫.txt","w");是以寫方式打開文件,所以再判斷中無需再添加以讀方式打開文件了,這樣就不會空了。

# include <stdio.h>
# include <stdlib.h>

int main ()
{
FILE *fp;

fp=fopen("e:\\文件讀寫.txt","w");

if(fp==NULL) //注意不要將==寫成=號,文件的路徑是「磁碟:\\文件夾\\文件名.格式」
{
printf("無法打開「文件讀寫.txt」\n");
exit(1);
}
else
printf("文件已成功打開,可以寫入數據了。\n");

fputc('H',fp);
fputs(" Hello World",fp);

fclose(fp);

return 0;
}

2. C語言文件寫入怎麼操作

C++的文本文件寫入
// outfile.cpp -- writing to a file
#include <iostream>
#include <fstream> // for file I/O

int main()
{
using namespace std;

char automobile[50];
int year;
double a_price;
double d_price;

ofstream outFile; // create object for output
outFile.open("carinfo.txt"); // associate with a file

cout << "Enter the make and model of automobile: ";
cin.getline(automobile, 50);
cout << "Enter the model year: ";
cin >> year;
cout << "Enter the original asking price: ";
cin >> a_price;
d_price = 0.913 * a_price;

// display information on screen with cout

cout << fixed;
cout.precision(2);
cout.setf(ios_base::showpoint);
cout << "Make and model: " << automobile << endl;
cout << "Year: " << year << endl;
cout << "Was asking $" << a_price << endl;
cout << "Now asking $" << d_price << endl;

// now do exact same things using outFile instead of cout

outFile << fixed;
outFile.precision(2);
outFile.setf(ios_base::showpoint);
outFile << "Make and model: " << automobile << endl;
outFile << "Year: " << year << endl;
outFile << "Was asking $" << a_price << endl;
outFile << "Now asking $" << d_price << endl;

outFile.close(); // done with file
return 0;
}

3. c語言寫入文件方法

要寫入文件,可以按照以下步驟進行操作:
1 在代碼中引用stdio.h,即
#include <stdio.h>
C語言的所有文件操作介面,均聲明在這個頭文件中。
2 定義FILE *類型的變數。
3 打開文件,使用函數為fopen。格式為:
FILE *fopen(char *filename, char *mode);
參數filename為要寫入的文件名,mode為打開的方式,如果僅需寫入文件,可以使用"w"或
"wb"。
返回值為文件指針類型,賦值給之前定義的變數。如果返回值為NULL,代表打開失敗,無法寫入。
4 對文件進行寫操作。C語言中有很多寫文件的介面,包括fprintf, fwrite, fputs, fputc等等。
寫操作可以執行多次。
5 在全部寫操作完成後,執行fclose函數關閉文件指針。這樣就實現了C語言寫入文件。

4. 如何用C語言讀寫文件

c語言讀寫文件程序:

#include "stdio.h"

#include <stdlib.h>

main()

{

FILE *fp1;//定義文件流指針,用於打開讀取的文件

FILE *fp2;//定義文件流指針,用於打開寫操作的文件

char text[1024];//定義一個字元串數組,用於存儲讀取的字元

fp1 = fopen("d:\a.txt","r");//只讀方式打開文件a.txt

fp2 = fopen("d:\b.txt","w");//寫方式打開文件a.txt

while(fgets(text,1024,fp1)!=NULL)//逐行讀取fp1所指向文件中的內容到text中

{

puts(text);//輸出到屏幕

fputs(text,fp2);//將內容寫到fp2所指向文件中

}

fclose(fp1);//關閉文件a.txt,有打開就要有關閉

fclose(fp2);//關閉文件b.txt

}

(4)寫入文件C語言擴展閱讀:

C語言文件讀寫操作總結

一.非標准文件的讀寫 不帶緩沖的

1.文件的打開和關閉

open()函數的作用是打開文件,其調用格式為: int open(char *filename, int access); 該函數表示按access的要求打開名為filename的文件,返回值為文件描述字,其中access有兩部分內容: 基本模式和修飾符, 兩者用" "("或")方式連接,修飾符可以有多個, 但基本模式只能有一個。

access的規定

O_RDONLY 只讀

O_APPEND 文件指針指向末尾

O_WRONLY 只寫

O_CREAT 文件不存在時創建文件, 屬性按基本模式屬性

O_RDWR 讀寫

O_BINARY 打開一個二進制文件

O_TEXT 打開一個文字文件

open()函數打開成功, 返回值就是文件描述字的值(非負值), 否則返回-1。 close()函數的作用是關閉由open()函數打開的文件, 其調用格式為: int close(int handle); 該函數關閉文件描述字handle相連的文件。

2.讀寫函數

int read(int handle, void *buf, int count);

read()函數從handle(文件描述字)相連的文件中, 讀取count個位元組放到buf所指的緩沖區中, 返回值為實際所讀位元組數, 返回-1表示出錯。返回0 表示文件結束。

write()函數的調用格式為: int write(int handle, void *buf, int count); write()函數把count個位元組從buf指向的緩沖區寫入與handle相連的文件中, 返回值為實際寫入的位元組數。

3.隨機定位函數

lseek()函數的調用格式為: int lseek(int handle, long offset, int fromwhere);

該函數對與handle相連的文件位置指針進行定位,功能和用法與fseek()函數相同。 tell()函數的調用格式為: long tell(int handle); 該函數返回與handle相連的文件現生位置指針, 功能和用法與ftell()相同

二、標准文件的讀寫

1.文件的打開函數fopen()

文件的打開操作表示將給用戶指定的文件在內存分配一個FILE結構區,並將該結構的指針返回給用戶程序,以後用戶程序就可用此FILE指針來實現對指定文件的存取操作了。

當使用打開函數時,必須給出文件名、文件操作方式(讀、寫或讀寫),如果該文件名不存在,就意味著建立(只對寫文件而言,對讀文件則出錯),並將文件指針指向文件開頭。若已有一個同名文件存在,則刪除該文件,若無同名文件,則建立該文件,並將文件指針指向文件開頭。

fopen(char *filename,char *type);

其中*filename是要打開文件的文件名指針,一般用雙引號括起來的文件名表示,也可使用雙反斜杠隔開的路徑名。

而*type參數表示了對打開文件的操作方式。其可採用的操作方式如下:

"r" 打開,只讀; "w" 打開,文件指針指到頭,只寫; "a" 打開,指向文件尾,在已存在文件中追加; "rb" 打開一個二進制文件,只讀; "wb" 打開一個二進制文件,只寫; "ab" 打開一個二進制文件,進行追加 ;

"r+" 以讀/寫方式打開一個已存在的文件; "w+" 以讀/寫方式建立一個新的文本文件 ;"a+" 以讀/寫方式打開一個文件文件進行追加 ;"rb+" 以讀/寫方式打開一個二進制文件; "wb+" 以讀/寫方式建立一個新的二進制文件 ;

"ab+" 以讀/寫方式打開一個二進制文件進行追加 ;當用fopen()成功的打開一個文件時,該函數將返回一個FILE指針,如果文件打開失敗,將返回一個NULL指針。

5. C語言文件寫入

#include"stdio.h"
#include<string.h>

main()
{
FILE *text;
char data[10];
printf("請輸入你要建立的文本名字:");
scanf("%s",data);
printf("%s",data);
if((text=fopen(data,"w"))==NULL) 這里 你原先的判斷就是說 成功的時候報錯 還有data的引號去掉 data是個變數
{
printf("文件打開失敗\n");
}
}

6. c語言寫入文件方法是什麼

程序注意的一點,二進制和文本形式的讀取區別你需要鞏固,讀的文件就不要以讀寫形式打開,養成一個好的習慣。x0dx0a另外一個不太重要的一點,id確實很少作為int類型的,因為有些id會很長,比如10位20位,這樣int就存不下了,而用char數組存的話只需要10個位元組20個位元組就能存下,對於每一位也好比較。x0dx0a#include x0dx0a#include x0dx0atypedef struct studentx0dx0a{x0dx0a int unsigned id;x0dx0a float score [3];x0dx0a float rank;x0dx0a}Student;x0dx0ax0dx0aint main ()x0dx0a{x0dx0a Student s;x0dx0a FILE * fp;x0dx0a fp=fopen("C:\\f11.txt","r"); //盡量以可讀方式打開x0dx0a if (!fp)x0dx0a {x0dx0a printf("file cannot be opened");x0dx0a exit(1);x0dx0a }x0dx0a //fscanf(fp,"%d %f %f %f",&s.id,&s.score[0],&s.score[1],&s.score[2]); 這一行拿到下面while語句裡面x0dx0a //fprintf(stdout,"%g",s.score[2]); x0dx0a FILE * fw;x0dx0a fw=fopen("C:\\f11a.txt","w"); //注意wb是以2進制形式打開文件,還有目錄的格式x0dx0a if (!fw)x0dx0a {x0dx0a printf("file cannot be opened");x0dx0a exit(1);x0dx0a } x0dx0a x0dx0a while(!feof(fp))x0dx0a {x0dx0a fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2]);x0dx0a s.rank=(s.score[0]+s.score[1]+s.score[2])/3;x0dx0a fprintf(fw,"%03d\t%.1f\t%.1f\t%.1f\t%.1f\n", s.id, s.score[0], s.score[1], s.score[2], s.rank); //尤其注意fprintf和fwrite不同,fwrite是以二進制形式寫文件,如果用fwrite的話將會顯示亂碼,fwrite和fread配套,fscanf和fprintf配套x0dx0a }x0dx0ax0dx0a fclose (fp);x0dx0a fclose(fw);x0dx0a return 0;x0dx0a}

7. c語言中怎麼把一個結構體數組寫入文件

C語言把一個結構體數組寫入文件分三步:

1、以二進制寫方式(wb)打開文件

2、調用寫入函數fwrite()將結構體數據寫入文件

3、關閉文件指針

相應的,讀文件也要與之匹配:

1、以二進制讀方式(rb)打開文件

2、調用讀文件函數fread()讀取文件中的數據到結構體變數

3、關閉文件指針

參考代碼如下:

#include<stdio.h>
structstu{
charname[30];
intage;
doublescore;
};
intread_file();
intwrite_file();
intmain()
{
if(write_file()<0)//將結構體數據寫入文件
return-1;
read_file();//讀文件,並顯示數據
return0;
}

intwrite_file()
{
FILE*fp=NULL;
structstustudent={"zhangsan",18,99.5};
fp=fopen("stu.dat","wb");//b表示以二進制方式打開文件
if(fp==NULL)//打開文件失敗,返回錯誤信息
{
printf("openfileforwriteerror ");
return-1;
}
fwrite(&student,sizeof(structstu),1,fp);//向文件中寫入數據
fclose(fp);//關閉文件
return0;
}

intread_file()
{
FILE*fp=NULL;
structstustudent;
fp=fopen("stu.dat","rb");//b表示以二進制方式打開文件
if(fp==NULL)//打開文件失敗,返回錯誤信息
{
printf("openfileforreaderror ");
return-1;
}
fread(&student,sizeof(structstu),1,fp);//讀文件中數據到結構體
printf("name="%s"age=%dscore=%.2lf ",student.name,student.age,student.score);//顯示結構體中的數據
fclose(fp);//關閉文件
return0;
}

fwrite(const void*buffer,size_t size,size_t count,FILE*stream);

(1)buffer:指向結構體的指針(數據首地址)
(2)size:一個數據項的大小(一般為結構體大小)
(3)count: 要寫入的數據項的個數,即size的個數
(4)stream:文件指針。

8. C語言fwrite怎麼寫入文件

C語言fwrite寫入文件可以參考以下的代碼:

//定義一個學生結構體

structStudent_type

{

charname[10];

intnum;

intage;

charaddr[30];

}stud[40];

inti;

FILE*fp;//定義一個文件指針fp

fp=fopen("stu.dat","wb");//以二進制可寫方式打開stu.dat文件

//將40個學生的記錄寫入文件stu.dat中

for(i=0;i<40;i++)

fwrite(&stud[i],sizeof(structStudent_type),1,fp);

(8)寫入文件C語言擴展閱讀:

fwrite函數用法

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);

返回值:返回實際寫入的數據塊數目

1、buffer:是一個指針,對fwrite來說,是要獲取數據的地址

2、size:要寫入內容的單位元組數

3、count:要進行寫入size位元組的數據項的個數

4、stream:目標文件指針

5、返回實際寫入的數據項個數count

說明:寫入到文件的哪裡與文件的打開模式有關,如果是w+,則是從file pointer指向的地址開始寫,替換掉之後的內容,文件的長度可以不變,stream的位置移動count個數;如果是a+,則從文件的末尾開始添加,文件長度加大。

fseek對此函數有作用,但是fwrite函數寫到用戶空間緩沖區,並未同步到文件中,所以修改後要將內存與文件同步可以用fflush(FILE *fp)函數同步。

9. C語言如何寫入文本文件

1、首先輸入下方的代碼

#include <stdio.h>

int main()

{

//下面是寫數據,將數字0~9寫入到data.txt文件中

FILE *fpWrite=fopen("data.txt","w");

if(fpWrite==NULL)

{

return 0;

}

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

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

fclose(fpWrite);

//下面是讀數據,將讀到的數據存到數組a[10]中,並且列印到控制台上

int a[10]={0};

FILE *fpRead=fopen("data.txt","r");

if(fpRead==NULL)

{

return 0;

}

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

{

fscanf(fpRead,"%d ",&a[i]);

printf("%d ",a[i]);

}

getchar();//等待

return 1;

}

熱點內容
安卓十二系統什麼時候更新 發布:2025-07-02 00:12:28 瀏覽:344
shell腳本需要編譯鏈接 發布:2025-07-02 00:04:20 瀏覽:473
微信如何重設密碼 發布:2025-07-02 00:02:27 瀏覽:545
java代碼基礎 發布:2025-07-02 00:00:46 瀏覽:304
煙花的代碼c語言 發布:2025-07-01 23:56:04 瀏覽:224
安卓默認打開文件方式怎麼修改 發布:2025-07-01 23:30:38 瀏覽:862
壓縮機接線座 發布:2025-07-01 23:17:48 瀏覽:662
iqoo瀏覽器緩存路徑 發布:2025-07-01 23:12:38 瀏覽:691
明日之後如何獲得最新伺服器 發布:2025-07-01 23:12:35 瀏覽:51
tv加密頻道 發布:2025-07-01 23:10:58 瀏覽:625