繁体   English   中英

无法停止使用!feof()读取Unicode文件

[英]Can't stop reading Unicode file with !feof()

我不知道为什么while循环无法停止。 它无法将c与Delim进行比较,也无法通过达到eof而停止。

wchar_t* Getline(const wchar_t* Filename, const wchar_t Delim){

FILE* f = _wfopen(Filename, L"r, ccs=UTF-8");

wchar_t* info = NULL;
wchar_t* temp = NULL;
int count = 1;
int i = 0;
wchar_t c;

c = fgetwc(f);

while (c != Delim || !feof(f))
{
    count++;
    temp = (wchar_t*)realloc(info, count * sizeof(wchar_t));

    if (temp)
    {
        info = temp;
        info[i] = c;
        i++;
    }

    else
    {
        free(info);
        wprintf(L"Failed to read\n");
    }
    c = fgetwc(f);
}
info[i] = '\0';

fclose(f);
return info;

}

读取文件中的所有字符后。 似乎没有停止。 即使是c也与Delim相同。 !feof(f)也不起作用。 我尝试了c!= WEOF但也失败了

我认为问题出在我读取的文件中,但没有。 我已经更改了另一个文件,但存在相同的问题。 感谢您的帮助!

您希望在没有Delim字符不是文件结尾的情况下循环,因此请替换|| &&

while (!feof(f) && c != Delim)

编辑:响应评论的顺序也已更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM