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><br></br>#include<iostream><br></br>void main()<br></br>{<br></br>FILE*fp;<br></br>char ch;<br></br>if((fp=fopen("input.txt","rt"))==NULL)<br></br>{<br></br>printf("Cannot open file strike any key exit!");<br></br>getchar();<br></br>exit(1);<br></br>}<br></br>ch=fgetc(fp);/* 在文件打开时,文件内部位置指针总是指向文件的第一个字节。*/<br></br>while(ch!=EOF)<br></br>{<br></br>putchar(ch);<br></br>ch=fgetc(fp);<br></br>}<br></br>printf("n");<br></br>fclose(fp);<br></br>} </iostream></stdio.h> \| \|—\| 二、写字符函数fputc [例10.2]从键盘输入一行字符,写入一个文件, 再把该文件内容读出显示在屏幕上。 \| ```# include <stdio.h>#include void main() { FILE*fp; char ch; if((fp=fopen(“output.txt”,“wt+”))==NULL) { printf(“Cannot open file strike any key exit!”); getchar(); exit(1); } printf(“input a string:n”); ch=getchar(); while(ch!=‘n’) { fputc(ch,fp); ch=getchar(); } rewind(fp);//将文件内部位置指针从末尾移向开头; |
---|
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/file_jiegou/517.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.