C 将“诅咒”窗口中的行读入单独的字符串
我试图读取一个包含一些加密内容的文件…加密是,除“\n”和“-”之外的每个字符都从中减去4,然后用150进行异或运算…从文件中读取加密字符后,我将它们放入字符串中并进行一些处理(编辑)使用curses库。然后我再次加密字符串并将其放回文件中。但是加密不起作用 我将解密文件的所有内容放入一个字符串中。然后根据字符将字符串分成\n个部分,并将其存储到单独的行列式数组(2d)中,这些行列式数组表示curses窗口中的连续行。然后尝试实现一些游标控件来编辑行,并将新编辑的行存储到行列式数组(2d)中然后我把它们放回一个临时文件。然后,我尝试加密字符,最后把它们放回原始文件C 将“诅咒”窗口中的行读入单独的字符串,c,arrays,pdcurses,C,Arrays,Pdcurses,我试图读取一个包含一些加密内容的文件…加密是,除“\n”和“-”之外的每个字符都从中减去4,然后用150进行异或运算…从文件中读取加密字符后,我将它们放入字符串中并进行一些处理(编辑)使用curses库。然后我再次加密字符串并将其放回文件中。但是加密不起作用 我将解密文件的所有内容放入一个字符串中。然后根据字符将字符串分成\n个部分,并将其存储到单独的行列式数组(2d)中,这些行列式数组表示curses窗口中的连续行。然后尝试实现一些游标控件来编辑行,并将新编辑的行存储到行列式数组(2d)中然后
#include<stdio.h>
#include<curses.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *fp1;
if((fp1=fopen("demo.txt","rb"))==NULL)
{
printf("\n\n\t\t\t\t Could not open file! Press any key to return\n");
_getch();
return;
}
fclose(fp1);
int xrow,xcol,row,col,i=0,j,k=0,L=0,ch1,x;
char a[1405],ab[100][1405],c;
fp1=fopen("demo.txt" , "rb")
while(1)
{
c=fgetc(fp1);
a[i]=c;
i++;
if(feof(fp1))
break;
}
fclose(fp1);
a[i]='\0';
i=0;
initscr();
getmaxyx(stdscr,xrow,xcol);
for(j=0;j<=strlen(a);j++,k++)
{
if(a[j]=='\n')
{
ab[i][k]='\0';
k=-1;
i++;
continue;
}
ab[i][k]=a[j];
}
cbreak();
keypad(stdscr,TRUE);
for(k=0;k<=i;k++)
{
mvaddnstr(k,0,ab[k],-1);
refresh();
}
echo();
l=0;
while(1)
{
noecho();
ch1=getch();
getyx(stdscr,row,col);
switch(ch1)
{
case KEY_LEFT:
refresh();
if((col-1)<0)
{
beep();
}
else
{
col--;
}
wmove(stdscr,row,col);
refresh();
break;
case KEY_RIGHT:
if((col+1)>119)
{
beep();
}
else
{
col++;
}
wmove(stdscr,row,col);
refresh();
break;
case KEY_UP:
if((row-1)<0)
{
beep();
}
else
{
row--;
}
wmove(stdscr,row,col);
refresh();
break;
case KEY_DOWN:
if((row+1)>29)
{
beep();
}
else
{
row++;
}
wmove(stdscr,row,col);
refresh();
break;
case 8:
delch();
refresh();
break;
case 10:
for(k=0;k<=i;k++)
{
x=strlen(ab[k]);
mvinnstr(k,0,ab[k],x);
}
L=1;
break;
default:
addch(ch1);
refresh();
break;
}
if(l!=0)
{
break;
}
}
clear();
refresh();
endwin();
system("cls");
for(k=0;k<=i;k++)
{
printf("%s\n",ab[k]);
}
getch();
k=0;
L=0;
if((fp1=fopen("demo.txt","wb+"))!=NULL)
{
while(1)
{
if(k>i)
{
break;
}
if(ab[k][l]=='\0')
{
c='\n';
l=0;
k++;
fputc(c,fp1);
}
else
{
c=ab[k][l];
l++;
fputc(c,fp1);
}
}
}
fclose(fp1);
}
#包括
#包括
#包括
#包括
int main()
{
文件*fp1;
if((fp1=fopen(“demo.txt”,“rb”))==NULL)
{
printf(“\n\n\t\t\t\t无法打开文件!按任意键返回\n”);
_getch();
返回;
}
fclose(fp1);
int xrow,xcol,row,col,i=0,j,k=0,L=0,ch1,x;
字符a[1405],ab[100][1405],c;
fp1=fopen(“demo.txt”、“rb”)
而(1)
{
c=fgetc(fp1);
a[i]=c;
i++;
if(feof(fp1))
打破
}
fclose(fp1);
a[i]='\0';
i=0;
initscr();
getmaxyx(stdscr、xrow、xcol);
对于(j=0;jt)在这个问题中没有理由混合使用解密和诅咒。制作单独的程序,一个带有解密和正常输出,一个带有诅咒但没有解密,然后看看其中哪一个有问题。然后问一下这个问题。我删除了加密,但问题仍然存在。因此:(如前所述,程序无法编译。修复了该问题后,我无法重现该问题。