FILE结构体(C语言版)

用VC 控制台程序实现Word 的排版功能,输入文件名读取小于64k 的英文文本,
然后对英文文本进行匀齐排版,最后结果为:一行70个字符,左右两边分别空
4 个字符,长单词不能折断,每行必须对齐,单词中间插入空格。均匀插入。

注意:1、不能用STL库,类似文件流fstream都不允许用
      2、不能用sdk,mfc,windows api
      3、用最基本的c/c++实现

从文件输入输出:

#include<stdio.h>

FILE *in,*out;
in=fopen("a.txt","r");       //其意义是在当前目录下打开文件a.txt, 只允许进行“读”操作,并使in指向该文件。
out=fopen("aout.txt","w");   //打开aout.txt, 只能向该文件写入数据, 如果不存在则创建aout.txt;

fscanf(in,"%d",&a);
fprintf(out,"%d",a);
fscanf(stdin,"%d",&a)=scanf("%d",&a);
fclose(in);
fclose(out);


文件使用方式               意 义

“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据


  对于文件使用方式有以下几点说明:

  1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

  r(read): 读
  w(write): 写
  a(append): 追加
  t(text): 文本文件,可省略不写
  b(banary): 二进制文件
  +: 读和写

  2. 凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。

  3. 用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

  4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

  5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:

 if((fp=fopen("c://hzk16","rb")==NULL)
 {
  printf("/nerror on open c://hzk16 file!");
  getch();  //等待用户敲入一个字符再运行
  exit(1);
 }


* 字符读写函数 :fgetc和fputc

* 字符串读写函数:fgets和fputs

* 数据块读写函数:freed和fwrite

* 格式化读写函数:fscanf和fprinf

一、读字符函数fgetc

[例10.1]读入文件e10-1.c,在屏幕上输出。

# include <stdio.h>
#include<iostream>
void main()
{
    FILE*fp;
    char ch;
    if((fp=fopen("input.txt","rt"))==NULL)
    {
        printf("Cannot open file strike any key exit!");
        getchar();
        exit(1);
    }
    ch=fgetc(fp);/* 在文件打开时,文件内部位置指针总是指向文件的第一个字节。*/
    while(ch!=EOF)
    {
        putchar(ch);
        ch=fgetc(fp);
    }
    printf("/n");
    fclose(fp);
}

二、写字符函数fputc

[例10.2]从键盘输入一行字符,写入一个文件, 再把该文件内容读出显示在屏幕上。

# include <stdio.h>
#include<iostream>
void main()
{
    FILE*<

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值