高分求大神 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);
} 展开
在线等 非常急
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);
} 展开
1个回答
展开全部
//显示文件内容
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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询