我正在尝试制作一个解密程序,其中我有一个文件,其中包含需要替换的字符(replace.txt)。 replace.txt的示例内容如下:
a X
b Y
c A
d C
e I
f K
g J
h L
i P
......等等。
现在,我正在尝试读取这些行并保存原始字符(a)和替换字符(X),从replace.txt的第一行开始。但是,我只能读取替换字符而无法将原始字符保存到数组中。
#include <string.h>
#include <stdio.h>
int main() {
FILE * file;
FILE * fileTwo;
file = fopen("in.txt","rt"); // This is the encrypted text file
fileTwo = fopen("replace.txt","rt");
char line[4];
char replaceChar[1];
char orginialChar[1];
while(fgets(line, 4, fileTwo) != NULL) {
strtok(line, " ");
printf("The line is: %s \n",line);
strcpy(originalChar, &line[0]); // Trying to get the "a"
strcpy(replaceChar, &line[2]); // Trying to get the "X"
printf("Original Char is: %s \n",originalChar);
printf("Replace Char is: %s \n",replaceChar);
}
return 0;
}
第一次运行的输出是:
The line is: a
Original Char is:
Replace Char is: X
之后它完全崩溃了。我怎么能解决这个问题?提前谢谢!
答案 0 :(得分:0)
我需要做的是将fgets和我的行数组的大小增加到5而不是3,因此可以添加新行和空字符,而不会这样做,文件读取完全错误。
然后,我不得不增加原始字符的大小并将字符数组替换为[2],以允许添加空终结符字符。