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
- c语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- c语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- C语言文件操作
- c语言文件操作
- c语言 文件操作
- c语言文件操作
- C语言文件操作
- MySQL ROLLUP和CUBE问题
- java并发系列:深入分析Synchronized
- SDTM: AETERM, AESOC, AEDECOD导出到SDTM/TFL中的条件
- iOS 数据库SQLite
- 记一次线上应用连接池满的处理
- c语言文件操作
- android图片压缩质量参数Bitmap.Config RGB_565 ARGB_8888
- ionic react-native和native开发移动app
- eclipse 逆向工程生成hibernate实体类(注解或配置文件)
- iOS UITextField控件
- centos、linux安装vpn
- C++中new和delete的用法
- 将Oracle分区表的定义导到文件中
- 创建一个非超级管理员用户,并增加 sudo 权限