c語租如旦言編橡局的程序的結果輸入到一個文本文件中可以使用fprintf;
例:
#include<stdio.h>
main(){
FILE *fpt;
fpt = fopen("wendangming.txt","w");//打開文檔弊擾,寫入
fprintf(fpt,"Hello world");
fclose(fpt);
}
(1)c語言寫入文件擴展閱讀
它打開一個文本文件,逐個字元地讀取該文件
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream testByCharFile;
int num;
char c;
testByCharFile.open("6.5.cpp",ios::in);
while(!testByCharFile.eof())
{
testByCharFile >> c;
num++;
}
testByCharFile.close();
cout << num << endl;
}
2. 用C語言編寫 文件讀寫
第一種:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
structstudent//結構體
{
charname[20];//姓名
intenglish;//英語
intmath;//數學
intprogram;//程序設計
}s[50];
voidru(structstudents[],int*n)//文件導入函數
{
FILE*p;
inti=*n;
if((p=fopen("students.txt","r"))==NULL)
{
printf("無法打開此文件!");
}
else
{
while(!feof(p))
{
fscanf(p,"%s%d%d%d",s[i].name,&s[i].english,&s[i].math,&s[i].program);
i++;
*n=*n+1;
}
}
fclose(p);
}
voidpaixu(structstudents[],intn)//排序函數
{
inti,j;
structstudentstu;
intallscore[2];
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
allscore[0]=s[i].english+s[i].math+s[i].program;
allscore[1]=s[j].english+s[j].math+s[j].program;
if(allscore[0]<allscore[1])
{
stu=s[i];
s[i]=s[j];
s[j]=stu;
}
}
}
}
voiddayin(structstudents[],intn)//顯示所有信息
{
inti;
printf(" 姓名 英語 數學 程序設計 總分 ");
for(i=0;i<n;i++)
{
printf("%s %d %d %d %d ",s[i].name,s[i].english,s[i].math,s[i].program,(s[i].english+s[i].math+s[i].program));
}
}
intmain()//主函數
{
intk,n=0;
ru(s,&n);
paixu(s,n);
dayin(s,n);
return0;
}
輸出結果:
第二種二進制的導入也差不多,這里就不寫了
3. c語言 如果一個文本文件第一次寫入然後第二次寫入時並沒有fseek到尾部,會不會直接就把第一次的
1、首先在打開的c語言,打開文件,如下圖所示。
4. C語言中如何將一個數組導入到文件中
使用文件操作復函數寫入文件制即可。
對於數組type a[N], 要將其寫入文件有兩種方式可以使用。
1 將數組以二進制方式寫入文件。如
fwrite(a, sizeof(a), 1, fp);
可以將數組整體以二進制方式寫入文件中。
2 按照元素,依次寫入文件。具體寫入格式與數組的類型有關。如為int數組可以寫作:
int i;
for(i = 0; i < N; i++)
fprintf("%d,", a[i]);
兩種方法各有優缺點:
1 代碼量上,第一種方式更簡單高效;
2 運行效率上,第一種方法的執行效率更高;
3 文件空間大小上:
如果數組中的字元串元素較多,那麼二者寫入後目標文件大小相似,或者第二種方式佔用的空間較小。
如果數組中的整型或浮點型數據較多,那麼第一種方式佔用的空間較小。
4 目標文件可讀性:
第一種方法得到的文件是二進制文件,需要用專門的閱讀器打開,且必須是專業人士才可以讀懂。
第二種方法更直觀,直接打開文本文件就可以閱讀輸出結果。
5. 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);
(5)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)函數同步。