c語言文件的寫入
❶ 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);
(1)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)函數同步。
❷ C語言如何實現對txt文件的讀取和寫入
1、使用VS新建空工程,直接點擊確定,如下所示。
❸ C語言讀取寫入CSV文件 [二]進階篇——寫入CSV文件
本系列文章介紹如何利用C語言讀取與寫入CSV文件,本篇為進階篇,重點在於寫入CSV文件的進階內容。首先了解包裹的概念,即使用雙引號包圍欄位以避免特殊符號引起的解析錯誤。任何欄位都能通過雙引號包裹,且在字元串中表示雙引號需使用轉義符號。
處理包含特殊符號的欄位時,必須使用雙引號包裹。如逗號、換行符、雙引號等。但請注意,C語言中的雙引號在字元串中需通過反斜杠表示。
接著探討CSV文件中開頭和結尾的空格與製表符的處理。根據RFC 4180標准,空格被視為欄位的一部分,不應忽略。然而,標准不強制,某些實現會截斷空格與製表符。例如,`fprintf(fp, " 6,abc,6.6 \n");`可能會產生兩種結果:`6,abc,6.6`或`6,abc,6.6`(空格被截掉)。
標准未規定包裹之外的空格如何處理,例如`fprintf(fp, " \"7\",def,\"7.7\" \n");`中,`\"7"`的空格若被截掉,則導致理解錯誤。為確保空格被視為有意義的數據,應將所有空格包裹起來,如`fprintf(fp, "\" 8\",ghi,\"8.8 \"\n");`。
在某些國家(如德國、荷蘭)中,小數點為逗號而非點,使用逗號作為分隔符會導致解析錯誤。解決方法包括修改分隔符,或在解析時進行適當的轉換。
為應對不同情況,許多功能強大的軟體提供配置選項,如Microsoft Excel、LibreOffice Calc中的CSV文件解析配置界面所示。這些工具允許用戶根據需求調整設置。
若需了解基礎的C語言讀取與寫入CSV文件內容,可參考相關文章;若對進階內容感興趣,亦有相應文章可供閱讀。
❹ 用c語言創建一個txt文件,並且寫入數據
#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;
}
(4)c語言文件的寫入擴展閱讀:
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+"相同;只是在文件尾部添加新數據之後,可以由位置函數設置開始讀的起始位置.
參考鏈接來源:網路-C語言
❺ 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;
}