我正在尝试从文本文件中读取不可打印字符,打印出字符的 ASCII 码,最后将这些不可打印字符写入输出文件。
但是,我注意到,对于我阅读的每个不可打印字符,在我真正想要阅读的内容前面总是存在一个额外的不可打印字符。
例如,我想读的字符是“§”。当我在我的程序中打印出它的 ASCII 码时,它不是只打印“167”,而是打印出“194 167”。
我在调试器中查找它并在 char 数组中看到“§”。但是我的输入文件中没有 Â。 调试器截图
在我将不可打印字符写入输出文件后,我注意到它也只是“§”,而不是“§”。
我读到的每个不可打印的字符都附加了一个额外的字符。为什么会这样?我该如何摆脱它?
谢谢!
代码如下:
case 1:
mode = 1;
FILE *fp;
fp = fopen ("input2.txt", "r");
int charCount = 0;
while(!feof(fp)) {
original_message[charCount] = fgetc(fp);
charCount++;
}
original_message[charCount - 1] = '\0';
fclose(fp);
k = strlen(original_message);//split the original message into k input symbols
printf("k: \n%lld\n", k);
printf("ASCII code:\n");
for (int i = 0; i < k; i++)
{
ASCII = original_message[i];
printf("%d ", ASCII);
}