#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char data[10001][10001];
int output(int x,int y)
{
int i,j;
for(i=0;i<=x;i++)
{
for(j=0;j<y;j++)
{
printf("%c",data[x][y]);
}
}
return 0;
}
int main()
{
FILE *fp = fopen("test.txt","w+");
/*the FILE I/O starting x=line y=list*/
int x=0,y=1;//x指向栈顶的下一个元素
char buff;
for(;;)
{
buff = getch();
/*meaning-changed char or normal-char*/
if(buff == '\b' && (x>0||y>1))
{
/*backspace or backline*/
if(y>0)
{
data[x][--y] = 0;
}
else
{
x--;
y = strlen(data[x]);
output(x,y);
}
}
else if(buff == '\r')
{
/*LINE-CHANGE*/
x++;
y=0;
output(x,y);
}
else if(buff == 27)
{
/*save*/
int i,j;
for(i=0;i<=x;i++)
{
for(j=0;j<y;j++)
{
fprintf(fp,"%c",data[i][j]);
}
}
fclose(fp);
break;
}
else
{
data[x][y] = buff;
y++;
output(x,y);
}
}
system("pause");
return 0;
}
第12行printf不可以将内容打印出来
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- qfl_sdu 2021-06-06 18:18关注
39行的output,在y <=0的时候才调用,y的0的时候output里面根本不会打印。
47行,把y=0了,进入output里,y=0,第二个for循环,j<y永远不成立,也不会打印
67行,你设的y=1,也就是所有行都是从a[i][1]开始保存的字符,a[i][0]这个是0,0是字符串的结束标志,在打印的时候碰到0就认为字符串结束,所以你这个进去就是结束符,也不会打印。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报