Linux C 文件操作
来源:互联网 发布:收快递的软件 编辑:程序博客网 时间:2024/06/05 20:46
1、文件打开关闭
FILE *fp;
fp = fopen("./test.txt", 'r');
fclose(fp);
2、读写单个字符
fputc(buffer_write[index], fp); //写什么;写到哪里去
data = fgetc(fp);
3、读写字符串
fputs(buffer_write, fp);
fgets(buffer_read, 128, fp); //读到哪里去;想读多少个;从哪里读
4、读写数据块
fwrite(buffer_write, sizeof(char), strlen(buffer_write), fp); //写什么;每个数据大小;想要写入的数据量;写到哪里去
fread(buffer_read, sizeof(char), 128, fp); //读到哪里去;每个数据大小;想要读多少个;从哪里读
5、文件指针位置
A - 函数ftell() 返回文件指针的位置
int file_offest = 0;
file_offest = ftell(fp);
函数原型:long int ftell(FILE *fp);
B - 函数fseek() 控制文件指针到任意位置
函数原型:int fseek(FILE *fptr, long off, int whence); //所要操作的文件指针;偏移量; 基地址(SEEK_SET开头, SEEK_CUR当前, SEEK_END结尾)
例:fseek(fp, 0, SEEK_SET); 回到文件起始位置
代码1
1 #include <stdio.h> 2 #include <string.h> 3 4 int main(int argc, char *argv[]) 5 { 6 FILE *fp = NULL; 7 int index, res; 8 int data; 9 char *temp_write = "First\nMiddle\nLast\n"; 10 11 fp = fopen("./test.txt", "w"); //不明白 “rw”就无法写入,可能分先后顺序。先写,所以 w 在前 12 if(fp == NULL) 13 { 14 printf("ERROR: file opening failed! \n"); 15 return -1; 16 } 17 printf("File opening success. \n"); 18 19 // 写:fputc() 20 for(index = 0; index <= strlen(temp_write); index++) 21 { 22 // 函数原型:int fputc(int data, FILE *fptr); 23 fputc(temp_write[index], fp); // parameter: 写什么;写到哪里去 24 printf("%d / %d: %c\n", index, strlen(temp_write), temp_write[index]); 25 } 26 fclose(fp); 27 28 fp = fopen("./test.txt","r"); 29 //fseek(fp, 0, SEEK_SET); 30 printf("___ reading___\n"); 31 32 // 读:fgetc() 33 // 函数原型:int fgetc(FILE *fptr); 34 while( (data = fgetc(fp)) != EOF) 35 { 36 if( data != 10 ) //换行回车符 的 ASCII码 为 10 37 printf("%d %c, ", data, (char)data); 38 else 39 { 40 printf("\n"); 41 } 42 } 43 44 res = fclose(fp); 45 if(res < 0) 46 { 47 printf("ERROR: unable to close file! \n"); 48 } 49 else 50 { 51 printf("File closed. \n"); 52 } 53 54 return 0; 55 }执行1
代码2
1 #include <stdio.h> 2 #include <stdlib.h> //malloc() 3 4 #define BUFFER_LENGTH 128 5 6 int main(int argc, char *argv[]) 7 { 8 FILE *fp = NULL; 9 char *temp = "First\nMiddle\nLast\n"; 10 char *buffer_read = NULL; 11 int fpos; 12 13 fp = fopen("./test.txt", "w"); 14 // 写: fputs() 15 // 函数原型:int fputs(const char *str, FILE *fptr); 16 // parameter: 写什么;写到哪里去 17 fputs(temp, fp); 18 fclose(fp); 19 20 fp = fopen("./test.txt", "r"); 21 22 fpos = ftell(fp); 23 printf("File pointer pos before reading: %d\n", fpos); 24 25 26 buffer_read = (char *)malloc(sizeof(char) * BUFFER_LENGTH); 27 // 读: fgets() 28 // 函数原型:char *fgets(char *str, int length, FILE *fptr); 29 // parameter: 读到哪里里去;读多少个;从哪里读 30 while( (fgets(buffer_read, BUFFER_LENGTH, fp)) > 0) 31 { 32 printf("reading: %s\n", buffer_read); 33 } 34 35 fpos = ftell(fp); 36 printf("File pointer pos after reading: %d\n", fpos); 37 38 fclose(fp); 39 return 0; 40 }执行2
代码3
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 #define BUFFER_LENGTH 128 6 7 int main(int argc, char *argv[]) 8 { 9 FILE *fp = NULL; 10 char *buffer_write = "Nan\nJing\nUniversity\n"; 11 char *buffer_read = NULL; 12 int length_write = strlen(buffer_write); 13 int res; 14 15 // 写:fwrite() 16 // 函数原型:size_t fwrite(const void *ptr, size_t size, size_t n, FILE *fptr); 17 // parameter: 写什么;每个数据的大小;数据量;写到哪里去 18 fp = fopen("./test.txt", "w"); 19 if(length_write == fwrite(buffer_write, sizeof(char), length_write, fp)) 20 { 21 printf("success in writing data.\n"); 22 } 23 else 24 { 25 printf("ERROR: failure in writing data\n"); 26 } 27 fclose(fp); 28 29 // 读:fread() 30 // 函数原型:size_t fread(void *ptr, size_t size, size_t n, FILE *fptr); 31 // parameter: 读到哪里去;每个数据的大小;数据量;从哪里读 32 fp = fopen("./test.txt", "r"); 33 buffer_read = (char *)malloc(sizeof(char) * BUFFER_LENGTH); 34 res = fread(buffer_read, sizeof(char), BUFFER_LENGTH, fp); 35 buffer_read[res] = '\0'; 36 fclose(fp); 37 38 printf("%s\n", buffer_read); 39 40 return 0; 41 }
执行3
- linux c 文件操作
- Linux C 文件操作
- 【LINUX C】文件操作
- Linux C 文件操作
- Linux C 文件操作
- linux C文件操作相关
- Linux c 开发 - 文件操作
- linux c 文件操作相关
- linux-C编程-文件操作
- C Linux 文件操作总结
- linux c 文件操作汇总
- linux c文件操作函数
- linux c文件操作接口
- linux-C编程-文件操作
- [Linux C编程]文件操作
- [Linux C编程]文件操作
- Linux c文件操作总结
- [Linux C编程]文件操作
- HDU 3389 Game(nim博弈)
- 使用 Adobe Acrobat 裁剪 PDF 白边及其他操作
- Build & Install GCC4.6.3 in CentOS (5.2 & 6.3)
- linux 修改IP
- Java中System类
- Linux C 文件操作
- Netty线程模型
- 金融风控-->客户流失预警模型-->金融数据分析
- 【Spring】Spring整合Struts2
- Spring Boot 快速入门教程
- 嵌入式linux--电子相册
- 【bitset乱搞】BZOJ3687 简单题
- OpenBLAS:改进OpenBLASConfig.cmake生成方式,解除cmake脚本的路径依赖
- 前端集锦