c语言文件操作

来源:互联网 发布:php报名系统 编辑:程序博客网 时间:2024/06/05 01:29
很详细的,转自:<a target=_blank href="http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html</a">http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html</a> 
C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有:      文件的打开操作 fopen 打开一个文件      文件的关闭操作 fclose 关闭一个文件      文件的读写操作 fgetc 从文件中读取一个字符              fputc 写一个字符到文件中去              fgets 从文件中读取一个字符串              fputs 写一个字符串到文件中去              fprintf 往文件中写格式化数据              fscanf 格式化读取文件中数据              fread 以二进制形式读取文件中的数据              fwrite 以二进制形式写数据到文件中去              getw 以二进制形式读取一个整数              putw 以二进制形式存贮一个整数    文件状态检查函数 feof 文件结束              ferror 文件读/写出错              clearerr 清除文件错误标志              ftell 了解文件指针的当前位置      文件定位函数 rewind 反绕              fseek 随机定位


练习代码(代码有问题):

//<pre class="cpp" name="code">// c_file_operate.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){FILE* fp1 = NULL;FILE* fp2 = NULL;if( (fp1 = fopen("D:\\input.txt", "rt")) == NULL ){printf("fopen error\n");return -1;}if( (fp2 = fopen("D:\\inputdd.txt", "wb")) == NULL ){printf("fopen error\n");return -1;}// char ch = fgetc(fp1);// while ( ch != EOF )// {// //putchar(ch);// if( EOF == fputc(ch, fp2) )// {// printf("fputc error\n");// return -1;// }// // ch = fgetc(fp1);// }// char str[80];// while ( !feof(fp1) )// {// if( fgets(str, 80, fp1) == NULL )// {// printf("fgets error\n");// return -1;// }// else// {// fputs(str, fp2);// //printf("%s\n", str);// }// }// int a = fputs(" ", stdout);// printf("%d\n", a);// int a = 0;// float b = 0;// char ch ;// char str[20] = {0};// while ( !feof(fp1) )// {// fscanf(fp1, "%d", &a);// fscanf(fp1, "%f", &b);// fscanf(fp1, "%c", &ch);// fscanf(fp1, "%s", str);// }// // if ( fprintf(fp2, "%d %f %c %s \n", a, b, ch, str) < 0 )// {// printf("fprintf error\n");// return -1;// }// int count = 0;// int total = 0;// char buffer[100] = {0};// while( !feof( fp1 ) )// {// count = fread( buffer, sizeof( char ), 100, fp1 );// if( ferror( fp1 ) )// {// printf( "fread error" );// return -1;// }// // //printf("%s\n", buffer);// fwrite(buffer, sizeof(char), 100, fp2);// if ( ferror(fp2) )// {// printf( "fwrite error" );// return -1;// }// // total += count;// }// printf("%d\n", total);// int a = 0;// while ( !feof(fp1) )// {// // a = getw(fp1);// if ( ferror(fp1) )// {// printf("getw error\n");// return -1;// }// // putw( a, fp2);// rewind(fp2);// if ( ferror(fp2) )// {// printf("putw error\n");// return -1;// }// }int n = 0;char buffer[1] = {0};while ( !feof(fp1) ){fseek(fp1, n * sizeof(char), SEEK_SET );fread(buffer, sizeof(char), 1, fp1);if ( ferror(fp1) ){printf("fread error\n");return -1;}fwrite(buffer, sizeof(char), 1, fp2 );if ( ferror(fp2) ){printf("fwrite error\n");return -1;}printf("%c\n", buffer);++n;}if ( EOF == _fcloseall() ){printf("fcloseall error\n");return -1;}return 0;}


 



 

0 0
原创粉丝点击