C语言 文件读写 C语言如何实现对txt文件的读取和写入

C\u8bed\u8a00\u5982\u4f55\u8bfb\u53d6txt\u6587\u672c\u91cc\u9762\u7684\u5185\u5bb9\uff1f

C\u8bed\u8a00\u53ef\u4ee5\u4f7f\u7528fopen\uff08\uff09\u51fd\u6570\u8bfb\u53d6txt\u6587\u672c\u91cc\u3002
\u793a\u4f8b\uff1a
#include
FILE *stream, *stream2;
void main( void )
{
int numclosed;
/* Open for read (will fail if file "data" does not exist) */
if( (stream = fopen( "data", "r" )) == NULL )
printf( "The file 'data' was not opened\n" );
else
printf( "The file 'data' was opened\n" );
/* Open for write */
if( (stream2 = fopen( "data2", "w+" )) == NULL )
printf( "The file 'data2' was not opened\n" );
else
printf( "The file 'data2' was opened\n" );
/* Close stream */
if(fclose( stream2 ))
printf( "The file 'data2' was not closed\n" );
/* All other files are closed: */
numclosed = _fcloseall( );
printf( "Number of files closed by _fcloseall: %u\n", numclosed );
}

\u6269\u5c55\u8d44\u6599
\u4f7f\u7528fgetc\u51fd\u6570
#include
#include
void main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
/* Open file to read line from: */
if( (stream = fopen( "fgetc.c", "r" )) == NULL )
exit( 0 );
/* Read in first 80 characters and place them in "buffer": */
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
/* Add null to end string */
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}

1\u3001\u4f7f\u7528VS\u65b0\u5efa\u7a7a\u5de5\u7a0b\uff0c\u76f4\u63a5\u70b9\u51fb\u786e\u5b9a\uff0c\u5982\u4e0b\u6240\u793a\u3002


2\u3001\u65b0\u5efac\u6587\u4ef6\uff0c\u7528\u4e8eC\u8bed\u8a00\u7f16\u8bd1\u5668\uff0c\u8f93\u5165main.c\u6587\u4ef6\uff0c\u5982\u4e0b\u6240\u793a\u3002


3\u3001\u53c2\u8003\u4ee3\u7801\uff1a
#include

int main()
{
//\u4e0b\u9762\u662f\u5199\u6570\u636e\uff0c\u5c06\u6570\u5b570~9\u5199\u5165\u5230data.txt\u6587\u4ef6\u4e2d
FILE *fpWrite=fopen("data.txt","w");
if(fpWrite==NULL)
{
return 0;
}
for(int i=0;i<10;i++)
fprintf(fpWrite,"%d ",i);
fclose(fpWrite);
//\u4e0b\u9762\u662f\u8bfb\u6570\u636e\uff0c\u5c06\u8bfb\u5230\u7684\u6570\u636e\u5b58\u5230\u6570\u7ec4a[10]\u4e2d\uff0c\u5e76\u4e14\u6253\u5370\u5230\u63a7\u5236\u53f0\u4e0a
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();//\u7b49\u5f85

return 1;
}


4\u3001\u7f16\u8bd1\u5b8c\u6210\u540e\uff0c\u8fd0\u884cexe\u7a0b\u5e8f\uff0c\u6267\u884c\u540e\u663e\u793aconsole\u7a0b\u5e8f\u3002

你是说文件的读写语句,不是加解密函数吧?
ok。 fopen打开文件,
FILE *fp;
fp=fopen(文件名,使用文件方式);
例如:  FILE *fp;aaaafp = fopen("file1","r");

fgetc()函数 读文件内容
从指定文件读入一个字符。fgetc函数的调用形式为:
ch=fgetc(fp);
从fp所指向的文件中读一个字符,返回读得的字符给变量ch。对于文本文件,遇文件尾时返回文件结束标志EOF。对于二进制文件,用feof(fp) 判别是否遇文件尾,feof(fp)=1说明遇文件尾。
fread函数和fwrite函数
fread函数和fwrite函数用来读写一个数据块。它们的一般调用方式为:
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
其中:
buffer:是一个指针。对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
size:要读写的字节数。
count:要进行读写多少个size字节的数据项。
fp:文件型指针。
如果以二进制形式打开文件,用fread函数和fwrite函数就可以读写任何类型的信息,例如:
fread(f,4,2,fp);

用fclose函数关闭文件。fclose函数调用的一般形式为:
fclose(文件指针)
例如:
fclose(fp);
fclose函数也带回一个返回值,当顺利关闭文件时,返回0,否则返回EOF(-1)。

其实很简单,就是一个可逆的加密!

//要将该程序放到要加密的文件同一目录下,不然无法加密
//加密用
#include <stdio.h>
void main()
{
FILE *fr;
FILE *fw;
char filename[50];
char newfile[50];
char ch=0;
printf("请输入要加密的文件名:");
scanf("%s",filename);
printf("请输入要生成的文件名:");
scanf("%s",newfile);
fr=fopen(filename,"rb");
fw=fopen(newfile,"wb");
while((ch=fgetc(fr))!=EOF)
{
fputc(ch+10,fw);
}
fclose(fr);
fclose(fw);
}
//解密用
#include <stdio.h>
void main()
{
FILE *fr;
FILE *fw;
char filename[50];
char newfile[50];
char ch=0;
printf("请输入要解密的文件名:");
scanf("%s",filename);
printf("请输入要生成的文件名:");
scanf("%s",newfile);
fr=fopen(filename,"rb");
fw=fopen(newfile,"wb");
while((ch=fgetc(fr))!=EOF)
{
fputc(ch-10,fw);
}
fclose(fr);
fclose(fw);
}


扩展阅读:c++编程 ... c语言读取txt全部数据 ... c语言txt文件读写修改 ... c二进制文件读写 ... c语言文档菜鸟 ... c语言程序设计第四版 ... c++ 文件读写 ... c语言写入文件的代码 ... c语言读取文件内容并输出 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网