高分求大神 C语言数据结构 用行编辑存入了数据 怎么在程序中再把写好的文件读入内存区并输出显示?

超过了字数我就挑些重点发了求大神!!!!!!!!!!!!!在线等非常急StatusStackTraverse(SqStackS,Status(*visit)(SElemT... 超过了字数我就挑些重点发了 求大神!!!!!!!!!!!!!

在线等 非常急
Status StackTraverse(SqStack S,Status(*visit)(SElemType))
{
while(S.top>S.base)
visit(*S.base++);
printf("\n");
return OK;
}

Status Copy(SElemType c)
{
fputc(c,fp);
return OK;
}

void LineEdit()
{
SqStack S;
SElemType ch,c;
InitStack(&S);
printf("请输入文本, 按Ctrl+Z键结束文本输入:\n");
ch=getchar();
while(ch!=EOF)
{ while(ch!=EOF&&ch!='\n')
{
switch(ch)
{
case '#': Pop(&S,&c);
break;
case '@': ClearStack(&S);
break;
default :Push(&S,ch);
}
ch=getchar();
}
StackTraverse(S,Copy);
ClearStack(&S);
fputc('\n',fp);
if(ch!=EOF)
ch=getchar();
}
DestroyStack(&S);
}

void main()
{ fp = fopen("LineEd.txt","w");
LineEdit();
fclose(fp);
}
展开
 我来答
营佁oT
推荐于2018-04-18 · 超过23用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:33.7万
展开全部
//显示文件内容
void ShowFile(char *path){
FILE* fp = fopen(path,"r");
if(NULL==fp){
printf("打开文件失败!\n");
return;
}

char buf;
do{
buf = fgetc(fp);
printf("%c",buf!=EOF?buf:'\n');
}while(buf!=EOF); 

fclose(fp);
}

//注意缓冲区长度问题,文件长度大于缓冲区长度时,会导致运行时崩溃

//读取文件至缓冲区,仅限于文本格式
void ReadFile(char *path,char *buf){
FILE* fp = fopen(path,"r");//文本格式,用于处理二进制文件时将会出错
if(NULL==fp){
printf("打开文件失败!\n");
return;
}

int CurrLen,Index;
Index = CurrLen = fread(buf,1,1024*sizeof(char),fp);

while(CurrLen){
CurrLen = fread(buf+Index,1,1024*sizeof(char),fp);
Index += CurrLen;
}

buf[Index] = 0;

fclose(fp);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式