| \|
用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);//将文件内部位置指针从末尾移向开头;
</stdio.h>`ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } printf(“n”); fclose(fp); } \| \|—\| 三、 字符串读写函数fgets fgets(str,n,fp);?? //从fp所指的文件中读出n-1个字符送入字符数组str中, 末尾会自动加上’ </stdio.h>
\| \|—\| | |—|