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

c語言構建文本

發布時間: 2023-05-16 14:01:37

① 用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;

}


(1)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語言程序創建一個由自己命名的文本

#include<stdlib.h>
#include<stdio.h>
voidmain()
{
FILE*fp;
chara[10];
scanf("%s",a);
getchar();
fp=fopen("C:\迅雷下載\a.txt","w");//這里你的文件沒有擴展名把它改成a.txt就可以了!
if(fopen==NULL)
{
printf("filecannotopen");
exit(0);
}
fprintf(fp,"%d",999);
fclose(fp);
}

③ C語言怎樣創建一個文本文件

讀文件是這樣的:
#include
"stdlib.h"
main()
{
FILE
*fp;
char
buf;
fp=fopen("a.txt","r");
while(fread(&buf,1,1,fp))
printf("%c
",buf);
fclose(fp);
}
寫文件是這樣的:
#include
"stdlib.h"
main()
{
FILE
*fp;
char
buf;
fp=fopen("a.txt","w");
while((buf=getchar())!='q')
fwrite(&buf,1,1,fp);
fclose(fp);
}
PS:這里buf緩沖區只開了一個位元組,做個例子,你可根據需要變化.
你的問題可能原因是:輸出內容超過了你的緩沖區.
比如:你讀出10個位元組,甚至可能沒讀出,而你列印100個位元組,後面的就很有可能是"燙".應該不是2進制的問題.

④ 怎麼用c語言生成一個特定大小的文本文件

#include <stdio.h>
void CreateMyFile(char * szFileName,int nFileLength)
{
FILE* fp = fopen(szFileName, "wb+"); // 創建文件
if(fp==NULL)
printf("文件打開失敗");
else
{
fseek(fp, nFileLength-1, SEEK_SET); // 將文件的指針 移至 指定大小的位置
fputc(32, fp); // 在要指定大小文件的末尾隨便放一個數據
fclose(fp);
}
}
void main()
{
CreateMyFile("test.txt",1024*256); //調用測試

}

⑤ 如何用C語言創建一個新文件

C語言可以通過fopen函數創建一個新文件。

細節如下:
1.
使用fopen需要添加頭文件
#include
<stdio.h>
2.
創建一個新的文本文件語句如下:
FILE
*fp=fopen("文件名",
"w");
3.
創建一個新的二進制文件的語句如下:FILE
*fp=fopen("文件名",
"wb");
4.
該函數詳細說明如下:

5.
函數原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
6.
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。
7.
參數說明:
參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。
mode有下列幾種形態字元串:
r
以只讀方式打開文件,該文件必須存在。
r+
以可讀寫方式打開文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
例子代碼
FILE *fp; //定義文件指針
fp=fopen("d:\\out.txt","w");//打開文件
//寫文件的代碼
fclose(fp);
//關閉文件

⑥ C語言 :如何建立文本文件,編程把文本文件中的字元串逆序輸出

文本文件使用windows記事本就可以建立,每個字元串一行,用回車換行就行。

程序代碼:

#include<stdio.h>

intmain()

{FILE*fp;

intk,i=0,j;

charstr[1024][20];//可以存放1024個串,每個串小於20個字元

if((fp=fopen("D:\dat.txt","r"))==NULL)//文本文件使用「r」打開讀入,文件在D的根目錄下

{ printf("error");//如果打開文件失敗就輸出error

return0; }

while(!feof(fp))//讀入文件內容,直到文件結束

{fscanf(fp,"%s",str[i++]);}//二維數組每行一個字元串

fclose(fp);//關閉文件

for(k=i-1;k>=0;k--)//從最後一個字元串開始輸出

for(j=strlen(str[k])-1;j>=0;j--)//從每個串的最後一個字元開始,輸出到第一個字元結束

{printf("%c",str[k][j]);//倒序輸出str記錄的文件內容

}

printf(" ");

system("pause");

}

文本文件的內容:

abc

sdf

efghij

klmn

opqrst

uvwxyz

輸出結果如圖

⑦ 怎麼用c語言新建一個文本文檔,咋寫代碼啊,求大神解答

#include<stdio.h>

int main()
{
FILE *p;
p=fopen("1.txt","w");
if(p!=NULL)
{
fputs("",p);
}
fclose(p);
return 0;
}
這就新建了

⑧ 如何用C語言構建文本編輯器

本題的一個完整的c程序如下,win-tc和Dev-c++下運行通過。
#include <stdio.h>
#define MAXLEN 80
#define MAXLINE 200
char buffer[MAXLEN],fname[120];
char *lineptr[MAXLINE];
FILE *fp;
void edit(),replace(),insert(),delete(),quit();
char comch[]="EeRrIiDdQq";/*命令符*/
void(*comfun[])()={edit,replace,insert,delete,quit};/*對應處理函數*/
int modified=0,/*正文被修改標志*/
last;/*當前正文行數*/
char *chpt;/*輸入命令行字元指針*/

main()
{
int j;

last=0;
while(1)
{
printf("\nInput a command:[e,r,i,d,q].\n");
gets(buffer);/*讀入命令行*/
for(chpt=buffer;*chpt==''||*chpt=='\t';chpt++);/*掠過空白符*/
if(*chpt=='\0') continue;/*空行重新輸入*/
for(j=0;comch[j]!='\0'&&comch[j]!=*chpt;j++);/*查命令符*/
if(comch[j]=='\0') continue;/*非法命令符*/
chpt++;/*掠過命令符,指向參數*/
(*comfun[j/2])();/*執行對應函數*/
fprintf(stdout,"The text is:\n");
for(j=0;j<last;j++)/*顯示正文*/
fputs(lineptr[j],stdout);
}
}
void quit()
{
int c;
if(modified)/* 如正文被修改 */
{
printf("Save? (y/n)");
while(!(((c=getchar())>='a'&&c<='z')||(c>='A'&&c<='Z')));
if(c=='y'||c=='Y')
save(fname); /* 保存被修改過的正文 */
}
for(c=0;c<last;c++)
free(lineptr[c]); /* 釋放內存 */
exit(0);
}

void insert()
{
int k,m,i;
sscanf(chpt,"%d%d",&k,&m); /* 讀入參數 */
if(m<0||m>last||last+k>=MAXLINE)/* 檢查參數合理性 */
{
printf("Error!\n");
return;
}
for(i=last;i>m;i--)/* 後繼行向後移 */
lineptr[i+k-1]=lineptr[i-1];
for(i=0;i<k;i++) /* 讀入k行正文,並插入 */
{
fgets(buffer,MAXLEN,stdin);
lineptr[m+i]=(char *)malloc(strlen(buffer)+1);
strcpy(lineptr[m+i],buffer);
}
last+=k; /* 修正正文行數 */
modified=1; /* 正文被修改 */
}

void delete()
{
int i,j,m,n;
sscanf(chpt,"%d%d",&m,&n); /* 讀入參數 */
if(m<=0||m>last||n<m) /* 檢查參數合理性 */
{
printf("Error!\n");
return;
}
if(n>last)
n=last; /* 修正參數 */
for(i=m;i<=n;i++) /* 刪除正文 */
free(lineptr[i-1]);
for(i=m,j=n+1;j<=last;i++,j++)
lineptr[i-1]=lineptr[j-1];
last=i-1; /* 修正正文行數 */
modified=1; /* 正文被修改 */
}

void replace()
{
int k,m,n,i,j;
sscanf(chpt,"%d%d%d",&k,&m,&n); /* 讀入參數 */
if(m<=0||m>last||n<m||last-(n-m+1)+k>=MAXLINE)/* 檢查參數合理性 */
{
printf("Error!\n");
return;
}
/* 先完成刪除 */
if(n>last)
n=last; /* 修正參數 */
for(i=m;i<=n;i++) /* 刪除正文 */
free(lineptr[i-1]);
for(i=m,j=n+1;j<=last;i++,j++)
lineptr[i-1]=lineptr[j-1];
last=i-1;
/* 以下完成插入 */
for(i=last;i>=m;i--)
lineptr[i+k-1]=lineptr[i-1];
for(i=0;i<k;i++)
{
fgets(buffer,MAXLEN,stdin);
lineptr[m+i-1]=(char *)malloc(strlen(buffer)+1);
strcpy(lineptr[m+i-1],buffer);
}
last+=k; /* 修正正文行數 */
modified=1; /* 正文被修改 */
}

save(char *fname) /* 保存文件 */
{
int i;
FILE *fp;
if((fp=fopen(fname,"w"))==NULL)
{
fprintf(stderr,"Can't open %s.\n",fname);
exit(1);
}
for(i=0;i<last;i++)
{
fputs(lineptr[i],fp);
free(lineptr[i]);
}
fclose(fp);
}

void edit() /* 編輯命令 */
{
int i;
FILE *fp;
i=sscanf(chpt,"%s",fname); /* 讀入文件名 */
if(i!=1)
{
printf("Enter file name.\n");
scanf("%s",fname);
}
if((fp=fopen(fname,"r"))==NULL) /* 讀打開 */
{
fp=fopen(fname,"w"); /* 如不存在,則創建文件 */
fclose(fp);
fp=fopen(fname,"r"); /* 重新讀打開 */
}
i=0;
while(fgets(buffer,MAXLEN,fp)==buffer)
{
lineptr[i]=(char *)malloc(strlen(buffer)+1);
strcpy(lineptr[i++],buffer);
}
fclose(fp);
last=i;
}