为什么在移动字符时找不到文件末尾?
Why is the end of a file is not found, when moving the chars?
我尝试输出一个文件内容,但是我需要给每个字符加上+20,因为文件中的字符移动了-20。输出内容有效但到达文件末尾,Ù
循环打印。谁能帮我处理代码?
while ((holder = (fgetc(dateiGlob)-ENC_NUM)) != EOF) // ENC_Num = 20
{
if (holder == ';') // Replace ;
{
printf("\n");
holder = '[=10=]';
}
if (holder == '/') // Replace /
{
printf(" | Anmerkung: ");
holder = '[=10=]';
}
putchar(holder); // Print in stdout
}
printf("\n");
}
当ENC_NUM设置为0时,再次发现EOF。
我需要改变什么?
谢谢!
仔细看看你的 while 条件。
(fgetc(dateiGlob) - ENC_NUM) != EOF
如果您设置 ENC_NUM = 0
,条件变为 fgetc(dateiGlob) != EOF
,这是您在文件结束时停止读取文件所需要的。
现在,如果您想更改条件的左侧(通过使 ENC_NUM
成为非零整数),您还需要以相同的方式更改其右侧(为了保留逻辑):
(fgetc(dateiGlob) - ENC_NUM) != (EOF - ENC_NUM)
// ^^^^^^^^^ ^^^^^^^^^
我尝试输出一个文件内容,但是我需要给每个字符加上+20,因为文件中的字符移动了-20。输出内容有效但到达文件末尾,Ù
循环打印。谁能帮我处理代码?
while ((holder = (fgetc(dateiGlob)-ENC_NUM)) != EOF) // ENC_Num = 20
{
if (holder == ';') // Replace ;
{
printf("\n");
holder = '[=10=]';
}
if (holder == '/') // Replace /
{
printf(" | Anmerkung: ");
holder = '[=10=]';
}
putchar(holder); // Print in stdout
}
printf("\n");
}
当ENC_NUM设置为0时,再次发现EOF。 我需要改变什么? 谢谢!
仔细看看你的 while 条件。
(fgetc(dateiGlob) - ENC_NUM) != EOF
如果您设置 ENC_NUM = 0
,条件变为 fgetc(dateiGlob) != EOF
,这是您在文件结束时停止读取文件所需要的。
现在,如果您想更改条件的左侧(通过使 ENC_NUM
成为非零整数),您还需要以相同的方式更改其右侧(为了保留逻辑):
(fgetc(dateiGlob) - ENC_NUM) != (EOF - ENC_NUM)
// ^^^^^^^^^ ^^^^^^^^^