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