微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的代码输出文件中出现奇怪的字符

如何解决我的代码输出文件中出现奇怪的字符

我在dev-c ++上的控制台上获得了正常的输出结果,但是代码将固定字符(即UTF16-LE格式)写入a_b_768.txt文件。奇怪的是:当我对另一个代码执行相同的文件输出过程时,我在文件中得到了正常的(UTF8)结果,而没有任何问题。

为什么我为输出文件获取一个代码的UTF16输出文件,而为另一个代码获取UTF8的为什么?编译器是相同的,标头是相同的,过程是相同的,但是一个代码将UTF 16写入文件,而另一个代码将UTF8写入文件。我只是添加以下问题的代码

我该如何解决?有什么方法可以修改代码以在文件获取UTF8输出

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

int main(){
    int a[768];
    int b[768];
    int i;
    
    /////////////////////////////////////////writing into a_b_768.txt
    FILE *outFile;
    outFile = fopen("a_b_768.txt","w");

    if (outFile == NULL){
        printf("Cannot Open File\n");
        exit (0);
    }   

    for ( i = 0;i < 768;++i)
    {
        a[i]=rand()%3;
        fprintf(outFile,"%d ",a[i]);
    }   
    
    //fprintf(outFile,"\n\n");
    for ( i = 0;i < 768;++i)
    {
        b[i]=rand()%3;
        fprintf(outFile,b[i]);
    }
    
    // fprintf(outFile,"\n\n\n\n");
    fclose(outFile);
    
    ///////////////////////////////////printing on console
    for ( i = 0;i < 768;++i)
    {
        a[i]=rand()%3;
        printf("%d ",a[i]);
    }   
    
    printf("\n\n");
    
    for ( i = 0;i < 768;++i)
    {
        b[i]=rand()%3;
        printf("%d ",b[i]);
    }   
    
}   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。