关于C语言的文件加密问题

选用一篇英语文章,用其每个字母的行数与列数组成的序列作为该字母的密码。用这个密码对任意给定的一段英文文本进行加密,并且可对任意给定的一段密码进行解密。
如第一行的第一个是单词big,则密文big的密文是为(1,1),(1,2),(1,3)。以此类推将后续文章全部加密。

供参考:

#include <stdio.h>
char encrypt(char ch, int line, int column)
{
    return ch ^ line ^ column;
}
int main()
{
    int row  = 1;
    int col  = 1;
    char ch;
    while ((ch = getchar()) != EOF)
    {
        if (ch == '\n')
        {
            putchar(ch);
            row++;
            col = 1;
        }
        else
        {
            putchar(encrypt(ch, row, col));
            col++;
        }
    }
    return 0;
}

代码如下:
#include
#include
#include

using namespace std;

int main()
{
const int MAX=1000;
int linenum = 0;
char buffer[MAX];
ifstream infile("engdata.txt");
while(infile)
{
linenum++;
infile.getline(buffer,MAX);
for(int i = 0; i < strlen(buffer); i++)
{
printf("(%d,%d),",linenum,i+1);

            }
            printf("\n");
    }
    infile.close();
    return 0;

}

结果如下:

img

读取的文件内容如下:

img