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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - lei1217

(转)android 4.0 蓝牙服务开启流程分析 - lei1217 转: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();
}