fgets无法读取windows文件

使用c语言中的fgets读取windows文本文件,无法读取一行内容,该文本文件内容保护^@等NUL特殊字符

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

char *filter(char *str)
{
    int len, i, j=0;
    char content[256];

    len = strlen(str);
    printf("=>input len:%d\n", len);
    for (i=0; i< len; i++) {
        //32=>空格
        if ((str[i] < '0' || str[i] > 'z') && str[i] != 32) {
            continue;
        }
        content[j]=str[i];
        j++;
    }

    strcpy(str, content);

    return str;
}

int main()
{
    char *filename = "a.txt"; //"b.txt";
    char content[256], *content_cpy;
    FILE *fp;

    fp = fopen(filename, "r");

    while(NULL != fgets(content, 1024, fp)){
        content_cpy = filter(content);       

        printf("=>%s\n", content_origin);
    }

    fclose(fp);

    return 0;
}

文本文件内容类似:

"[^@S^@y^@s^@t^@e^@m^@]^@^M^@"
阅读 2.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进