敲的是书上的例题,可以运行没有报错,但是在相应的“ed.txt”里没有添加任何文字,一直是空的。
-----------------------------------------------------------------------
typedef char SElemType;
#include"c1.h"
#include"c3-1.h"
#include"bo3-1.cpp"
FILE *fp;
void copy(SElemType c)
{
fputc(c,fp);
}
void LineEdit()
{
SqStack s;
char ch;
InitStack(s);
printf("请输入^Z结束输入:\n");
ch=getchar();
while(ch=!EOF)
{
while(ch!=EOF&&ch!='/n')
{
switch(ch)
{
case'#':if(!StackEmpty(s))
Pop(s,ch);
break;
case'@':ClearStack(s);
break;
default:Push(s,ch);
}
ch=getchar();
}
StackTraverse(s,copy);
fputc('/n',fp);
ClearStack(s);
if(ch!=EOF)
ch=getchar();
}
DestroyStack(s);
}
void main()
{
fp=fopen("ed.txt","w");
if(fp)
{
LineEdit();
fclose(fp);
}
else
printf("建立文件夹失败!\n");
}
没写入肯定是LineEdit这个函数出问题了
while(ch=!EOF); //应该是while(ch!=EOF)
除了@小负舞指出的之外,还有两个地方:
while(ch!=EOF&&ch!='/n') 应该是while(ch!=EOF&&ch!='\n')
fputc('/n',fp); 应该是fputc('\n',fp);
以上应该是反斜杠,希望对您有帮助!