我有这个代码:
while( (cCurrent = fgetc(fp)) != EOF)
{
}
问题是,当它遇到新行时,它会停止读取。
什么是忽略换行符的好方法?
编辑:
我正在尝试创建一个文件加密器。它能够加密文件,但解密过程不起作用。它一直工作到第一行的末尾,但不会继续到文件中的下一个字符。
例如,对于文本文件:
Foo
Bar
加密后的结果是:
许||Gb|t
解密后的结果是:
FooRqb
我的结论是新行字符是问题所在。也许不是。
我的代码是:
/* check if the file is openable */
if( (fp = fopen(szFileName, "r+")) != NULL )
{
/* save current position */
currentPos = ftell(fp);
/* get the current byte and check if it is EOF, if not then loop */
while( (cCurrent = fgetc(fp)) != EOF)
{
/* XOR it */
cCurrent ^= 0x10;
/* take the position indicator back to the last position before read byte */
fseek(fp, currentPos, SEEK_SET);
/* set the current byte */
fputc(cCurrent, fp);
/* reset stream for next read operation */
fseek(fp, 0L, SEEK_CUR);
/* save current position */
currentPos = ftell(fp);
}