文档库 最新最全的文档下载
当前位置:文档库 › C语言_txt_读写数据

C语言_txt_读写数据

/*C语言使用文件的例子*/
#include

/*文件的访问可以使用二进制的形式访问,也
可以使用文本方式访问,在C中,是依靠打开
文件时的参数来确定的,以二进制方式访问
的文件在以记事本等方式打开时看到的可能
是乱码,具体的操作如下:*/

/*功能:以文本方式生成一个文件,将"50 100 150"等数字输出到文件中
输入:无
输出:无
返回:无
*/
void write_TXT_file(void)
{
/*定义想输出的文件名*/
const char * pFileName="c:\\aa.txt";
/*定义输出到文件的数据*/
int num1=50,num2=100,num3=150;
/*定义文件指针*/
FILE * pFile;

/*以文本方式打开文件用于输出*/
pFile=fopen(pFileName,"wt");

/*判断打开文件成功否*/
if ( NULL == pFile )
{
perror("打开文件失败");
return;
}

/*以文本方式输出到文件*/
fprintf(pFile,"%d\n%d %d",num1,num2,num3);
/*检验写文件是否成功*/
if ( ferror(pFile) )
{
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

printf("文本文件成功写入\n");
/*不要忘记关闭文件*/
fclose(pFile);
return;
}

/*功能:从文本文件中将数据读出来
输入:无
输出:无
返回:无
*/
void read_TXT_file(void)
{
/*定义想读取的文件名*/
const char * pFileName="c:\\aa.txt";
/*定义变量接收数据*/
int num1,num2,num3;
/*定义文件指针*/
FILE * pFile;

/*以文本方式打开文件用于输入*/
pFile=fopen(pFileName,"rt");

/*判断打开文件成功否*/
if ( NULL == pFile )
{
perror("打开文件失败");
return;
}

/*以文本方式读取文件*/
fscanf(pFile,"%d%d%d",&num1,&num2,&num3);
/*检验写文件是否成功*/
if ( ferror(pFile) )
{
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

printf("文本方式读取到的数据为:[%d][%d][%d]\n",num1,num2,num3);
/*不要忘记关闭文件*/
fclose(pFile);

return;
}

/*功能:以二进制方式生成一个文件,将"50 100 150"等数字输出到文件中
输入:无
输出:无
返回:无
*/
void write_BIN_file(void)
{
/*定义想输出的文件名*/
const char * pFileName="c:\\aa.bin";
/*定义输出到文件的数据*/
int num1=50,num2=100,num3=150;
/*定义文件指针*/
FILE * pFile;

/*以二进制方式打开文件用于输出*/
pFile=fopen(pFileName,"wb");

/*判断打开文件成功否*/
if ( NULL == pFile )
{
perror("打开文件失败");
return;
}

/*以二进制方式输出到文件*/
/*fwrite函数可以自己查一下用法*/
fwrite(&num1,sizeof(num1),1,pFile);
/*检验写文件是否成功(ferror函数只能检查最近的一次文件操作是否成功,所以每次写入都需要判断一次)*/
if ( ferror(pFile) )
{
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

fw

rite(&num2,sizeof(num2),1,pFile);
/*检验写文件是否成功*/
if ( ferror(pFile) )
{
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

fwrite(&num3,sizeof(num3),1,pFile);
/*检验写文件是否成功*/
if ( ferror(pFile) )
{
perror("写文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

printf("二进制文件成功写入\n");
/*不要忘记关闭文件*/
fclose(pFile);
return;
}

/*功能:从二进制文件中将数据读出来
输入:无
输出:无
返回:无
*/
void read_BIN_file(void)
{
/*定义想读取的文件名*/
const char * pFileName="c:\\aa.bin";
/*定义变量接收数据*/
int num1,num2,num3;
/*定义文件指针*/
FILE * pFile;

/*以二进制方式打开文件用于输入*/
pFile=fopen(pFileName,"rb");

/*判断打开文件成功否*/
if ( NULL == pFile )
{
perror("打开文件失败");
return;
}

/*以二进制方式读取文件*/
fread(&num1,sizeof(num1),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
{
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

/*以二进制方式读取文件*/
fread(&num2,sizeof(num2),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
{
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

/*以二进制方式读取文件*/
fread(&num3,sizeof(num3),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
{
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}

printf("二进制方式读取到的数据为:[%d][%d][%d]\n",num1,num2,num3);
/*不要忘记关闭文件*/
fclose(pFile);

return;
}

/*功能:以二进制方式从二进制文件中只将第三个整数读出来
输入:无
输出:无
返回:无
*/
void read_BIN_file_3DNUM(void)
{
/*定义想读取的文件名*/
const char * pFileName="c:\\aa.bin";
/*定义变量接收数据*/
int num;
/*定义文件指针*/
FILE * pFile;

/*以二进制方式打开文件用于输入*/
pFile=fopen(pFileName,"rb");

/*判断打开文件成功否*/
if ( NULL == pFile )
{
perror("打开文件失败");
return;
}

/*移动文件的读取指针将其指向第三个整数的位置*/
/*有关fseek函数请自己去查阅其参数信息*/
fseek(pFile,2*sizeof(int),0);

/*以二进制方式读取文件*/
fread(&num,sizeof(num),1,pFile);
/*检验读文件是否成功*/
if ( ferror(pFile) )
{
perror("读文件失败");
/*关闭文件后返回*/
fclose(pFile);
return;
}


printf("二进制方式读取文件中第三个整数得到的数据为:[%d]\n",num);
/*不要忘记关闭文件*/
fclose(pFile);

return;
}

int main(void)
{
/*调用写文本文件*/
write_TXT_file();

/*调用读文本文件*/
read_TXT_file();

/*调用写二进

制文件*/
write_BIN_file();

/*调用二进制方式读文件*/
read_BIN_file();

/*调用二进制方式读文件,仅读取文件中第三个整数*/
read_BIN_file_3DNUM();

/*暂停程序以便看清结果*/
printf("Press any key to continue...");
fflush(stdin);
getchar();

return 0;
}

相关文档