C语言里的文件函数
1、File *pf = fopen("文件名","打开方式");
文件名可以加路径,两个"\\"或者一个"/"
打开方式有这么几种:r只读,r+可读可写,w只写,w+可读可写,会覆盖。a追加,a+可读可写。
2、对于windows系统来讲,都可以带上b,因为在windows系统下,还是有这个区分的。
尤其是这个回车转义字符。因为在 windows下面,\r\n代表回车,而在linux/unix系统的文本文件下,\n就代表一个回车。
3、Fopen 和 fclose要成对出现。就跟malloc跟free一样,打开不关,跟申请了不释放一样,都会造成不安全的。所以一定要成对出现。
Fclose(pf);
4、getc() 和 putc() 得到一个 字符,和送出一个字符。
示例用法:
Int main(){
FILE *pf = fopen("a.txt","r");
Char c =;
While( (c=getc(pf))!=EOF){
Printf("%c",c);
}
Printf("\n读取结束\n");
Fclose(pf);
Getchar();
Return ;
}
Int main(){
FILE *pf = fopen("b.txt","w");
Char c[]="lifei";
Int i = ;
For(;i<strlen(c);i++){
Putc(c[i],pf);
}
Printf("写入结束\n");
Fclose(pf);
Getchar();
Return ;
}
5、EOF 的值是-1代表文件结束。函数feof(pf) 用来判定一个文件是否已经到文件结尾了。如果到结尾的话,返回真,否则返回假?
示例用法:
EOF跟上面的第四个点的第一个案例是相同的。
Int main(){
FILE *pf = fopen("a.txt","r");
Char buf[] = {};
while (!feof(pf)){
//如果没有到文件结尾为真就继续执行。
fgets(buf, sizeof(buf), pf);
printf(buf);
}
printf("\n读取结束\n");
fclose(pf);
getchar();
return ;
}
6、有几个函数总是蒙蔽。。。
Printf()
Sprintf();
Fprintf();
总是不知道谁是谁,干吗用的。现在就来厘清一下他们的关系:
Printf();我们接触最多,是用于输出的,通常情况下直接输出到屏幕。当然也可以输出到文件中。
Sprintf(); 是格式化输出,目标是 一个字符串。它比printf就多一个参数,就是最前面的字符数组,用于接收被输出的对象。
Fprintf();是文件输出,前面加上文件目标就可以了。
例程:
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
int main(){
FILE *pf = fopen("a.txt", "r");
FILE *pfw = fopen("content.txt", "w");
char buf[1024] = { 0 };
char forout[100] = { 0 };
int i = 1;
while (!feof(pf)){
memset(buf, 0, sizeof(buf));//这个 在 string.h 里面
fgets(buf, sizeof(buf), pf);
sprintf(forout, "第 %d 行:%s", i++,buf);//格式化输出到字符数组中。
printf(forout);//输出到显示器
fprintf(pfw,"%s",forout);//输出到文件
}
printf("\n读取结束\n");
printf("写出结束\n");
fclose(pf);
getchar();
return 0;
}
7、因为 fprintf();是打印数据到文件所以结合scanf()是从键盘得到数据,fscanf()就是从文件得到数据。
与fgets()一样,fscanf()也是从键盘上获取数据,不过fgets()可以获取文件结尾的回车符号,fscanf()不能获取结尾的回车换行符号。
示例:
#include <stdio.h>
#pragma warning(disable:4996) int main(){ FILE *pf = fopen("a.txt","r");
char buf[] = { };
while (!feof(pf)){
fscanf(pf, "%s", buf);
printf("%s\n",buf);
}
printf("读取结束");
fclose(pf);
getchar();
return ;
}
8、stat函数
例程:
#include <stdio.h>
#include <sys/stat.h>
#pragma warning(disable:4996) int main(){
//当你知道 只有跑可以追赶上别人的时候,你会不会跑? struct stat st;
stat("main.c", &st);
long len = st.st_size;
printf("文件大小为:%d\n", len); getchar();
return ;
}
打印文件:
#include <stdio.h>
#include <sys/stat.h>
#pragma warning(disable:4996) int main(){
//当你知道 只有跑可以追赶上别人的时候,你会不会跑? struct stat st;
stat("main.c", &st);
long len = st.st_size;
printf("文件大小为:%d\n", len); FILE *pf = fopen("main.c", "r");
char buf[] = { };
while (!feof(pf)){ fgets(buf, sizeof(buf), pf);
printf("%s", buf); } fclose(pf); getchar();
return ;
}
#include <stdio.h>
#pragma warning(disable:4996)
int main(){
FILE *pf = fopen("a.txt", "r");
if (pf == NULL)
return ;
int position = ftell(pf);
printf("文件刚刚打开时候的位置%d\n",position);
char buf[] = { };
char _4out[] = { };
int i = ;
while (!feof(pf)){
printf("currentPosition:%d", ftell(pf));
fgets(buf, sizeof(buf), pf);
sprintf(_4out, "第 %d 行:%s",i++, buf);
printf(_4out);
}
printf("\n第一遍结束,下面第二遍输出原文\n");
printf("值得注意的是:在windows文本文件环境下,一个回车由\\r\\n两个字符组成,所以第一行有八个字节,等到再次读取的时候当前位置是8.\n");
fseek(pf, , SEEK_SET);
while (!feof(pf)){
printf("当前位置:%d", ftell(pf));
fgets(buf, sizeof(buf), pf);
printf(buf);
}
fclose(pf);
getchar();
return ;
}
C语言里的文件函数的更多相关文章
- 用matlab脚本语言写M文件函数时用三种方法简单实现实现DFT(离散傅里叶变换)
%用二重循环实现DFT: function xk=dt_0(xn); %define a function N=length(xn); %caculate the length of the vari ...
- C语言样式的文件操作函数
使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...
- c语言里用结构体和指针函数实现面向对象思想
一.基础研究 观察如下两个程序a.c和b.c: A.c: B.c: 这两个程序都是要实现在屏幕上第10行40列打印一个绿色的字符c: 这两个程序的数据组织方式是一样的,都是使用结构体,而且对共性和个性 ...
- c语言中的文件流
一.打开和关闭文件 #include int main( void ) { FILE* pReadFile = fopen( "E:\\mytest.txt", "r&q ...
- 如何在C语言中调用Swift函数
在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中 ...
- c语言的头文件-不是c++类的头文件?
下面的概述是参考的这篇文章:http://blog.csdn.net/bingxx11/article/details/7771437 c语言编程中也有,也需要头文件, 头文件不只是C++的类才需要! ...
- Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解
上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #in ...
- Unix/Linux环境C编程新手教程(41) C语言库函数的文件操作具体解释
上一篇博客我们解说了怎样使用Linux提供的文件操作函数,本文主要解说使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #in ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
随机推荐
- HDU 2295 Radar dancing links 重复覆盖
就是dancing links 求最小支配集,重复覆盖 精确覆盖时:每次缓存数据的时候,既删除行又删除列(这里的删除列,只是删除表头) 重复覆盖的时候:只删除列,因为可以重复覆盖 然后重复覆盖有一个估 ...
- Python脚本控制的WebDriver 常用操作 <二十八> 超时设置和cookie操作
超时设置 测试用例场景 webdriver中可以设置很多的超时时间 implicit_wait.识别对象时的超时时间.过了这个时间如果对象还没找到的话就会抛出异常 Python脚本 ff = webd ...
- 430flash的操作
大概印象:430的flash好像有点像arm的flash,只不过是arm的flash要比430的大很多,而且430的flash不同于E2PROOM,这一点需要值得注意 MSP430flash的基本特点 ...
- 多线程与网络之NSURLConnection发送请求
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- getsockopt/setsockopt 函数说明
[ getsockopt/setsockopt系统调用] 功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选 ...
- [转]常用的130个vim命令
原帖地址:http://www.oschina.net/news/43167/130-essential-vim-commands 从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编 ...
- SQL2008-查询库中是否存在某表
select * from sysobjects where name= 'N201111B' and xtype= 'U'
- 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
- java入门学习(十一)逻辑运算符和位运算符
请关注我的博客:www.taomaipin.com 家里有急事 暂停了几天,抱歉,现在呢开始说说java的运算语句和运算符 如果想利用java的运算语句 那么就离不开java的运算符,前面第九章讲了j ...
- 用RelativeLayout布局可以在imageview中写上文字
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...