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

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
Jina AI
Jina AI
Martin Fowler
Martin Fowler
W
WeLiveSecurity
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Privacy International News Feed
D
DataBreaches.Net
Security Archives - TechRepublic
Security Archives - TechRepublic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Scott Helme
Scott Helme
U
Unit 42
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
I
InfoQ
N
Netflix TechBlog - Medium
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
S
Securelist
S
Schneier on Security
T
Troy Hunt's Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cisco Blogs
H
Hacker News: Front Page
Spread Privacy
Spread Privacy
T
Tenable Blog
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
量子位
AI
AI
L
LINUX DO - 最新话题
J
Java Code Geeks
小众软件
小众软件
爱范儿
爱范儿
月光博客
月光博客
H
Help Net Security
aimingoo的专栏
aimingoo的专栏

博客园 - 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();
}