惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threat Research - Cisco Blogs
V2EX - 技术
V2EX - 技术
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
S
Schneier on Security
I
InfoQ
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The GitHub Blog
The GitHub Blog
S
Security @ Cisco Blogs
O
OpenAI News
W
WeLiveSecurity
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
人人都是产品经理
人人都是产品经理
Cloudbric
Cloudbric
The Last Watchdog
The Last Watchdog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
NISL@THU
NISL@THU
T
Tailwind CSS Blog
V
Visual Studio Blog
PCI Perspectives
PCI Perspectives
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
D
DataBreaches.Net
B
Blog RSS Feed
N
News and Events Feed by Topic
N
News and Events Feed by Topic
H
Heimdal Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
Latest news
Latest news
V
Vulnerabilities – Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
V
V2EX
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Register - Security
The Register - Security
Help Net Security
Help Net Security

博客园 - lei1217

(转)android 4.0 蓝牙服务开启流程分析 转:MTK分布式编译提高编译速度(IncredBuild) 使用.NET实现断点续传(转载) MTK 图层,详细讲解加案例(转载) 字符串颠倒 .net的RadioButtonList控件的脚本操作 socket编程原理 C#请求远程服务器的资源 SQL2000 文件与文件组操作 [转载]SQL Server 2005对海量数据处理 HTTP参考 - 转载 HTTP协议详解 - 转载 ASPAJAXExtSetup 转载 Response.ContentType 的参数属性 C语言文件操作 Web/Js 调色板 进制转换 计算机进制转换汇总 浮动广告
标准文件读写操作
lei1217 · 2008-07-21 · via 博客园 - lei1217

文件使用方式        意 义
“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);

1、编程实现读出磁盘文件datafile.txt中的内容,将它们显示在屏幕上

#include<stdio.h>
#include
<stdlib.h>
#include
<conio.h>void main()
{
    FILE 
*fp;
    
char ch;
    
if((fp=fopen("c:\\datafile.txt","r"))==NULL)
    {
        printf(
"file cannot be opened!\n");
        exit(
1);
    }
    
while((ch=fgetc(fp))!=EOF)
        fputc(ch,stdout);
    fclose(fp);
    getch();
}

2、编程完成从键盘输入字符后,写入到磁盘文件datafile.txt中

#include<stdio.h>
#include
<stdlib.h>
#include
<conio.h>void main()
{
    FILE 
*fp;
    
char ch;
    
if((fp=fopen("c:\\datafile.txt","w"))==NULL)
    {
        printf(
"file cannot be opened!\n");
        exit(
1);
    }
    
while((ch=fgetc(stdin))!='\n')
        fputc(ch,fp);
    fclose(fp);
    getch();
}

3、逐行读出datafile.txt文件中的字符并显示出来

#include<stdio.h>
#include
<stdlib.h>
#include
<conio.h>void main()
{
    FILE 
*fp;
    
char buffer[64];
    
if((fp=fopen("c:\\datafile.txt","r"))==NULL)
    {
        printf(
"file cannot be opened!\n");
        exit(
1);
    }
    
while(!feof(fp))
    {
        
if(fgets(buffer,64,fp)!=NULL)
            printf(
"%s",buffer);
    }
    fclose(fp);
    getch();
}

4、从键盘输入若干行字符,把它们添加到磁盘文件datafile.txt中

#include<stdio.h>
#include
<stdlib.h>
#include
<conio.h>
#include
<string.h>void main()
{
    FILE 
*fp;
    
char buffer[64];
    
if((fp=fopen("c:\\datafile.txt","a"))==NULL)
    {
        printf(
"file cannot be opened!\n");
        exit(
1);
    }
    
while(strlen(fgets(buffer,64,stdin))>1)
    {
        fputs(buffer,fp);
        fputs(
"\n",fp);
    }
    fclose(fp);
    getch();
}

编程完成读出文件中的内容,反序输出到屏幕中

#include<stdio.h>
#include
<stdlib.h>
#include
<conio.h>
#define N 5000void main()
{
    FILE 
*sfp;
    
int i;
    
char buf[N];
    
if((sfp=fopen("c:\\datafile.txt","r"))==NULL)
    {
        printf(
"Source file cannot be opened!\n");
        exit(
1);
    }
    i
=0;
    
while(!feof(sfp))
    {
        buf[i
++]=fgetc(sfp);
        
if(i>=N)
        {
            printf(
"buffer not enough!");
            exit(
1);
        }
    }
    
while(--i>=0)
        fputc(buf[i],stdout);
    fclose(sfp);
    getch();
}