当前位置: 首页 > 面试题库 >

如何在C中读取/写入UTF8文本文件?

黄骏喆
2023-03-14
问题内容

我正在尝试从文本文件中读取UTF8文本,然后将其中一些打印到另一个文件中。我正在使用Linux和gcc编译器。这是我正在使用的代码:

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

int main(){
    FILE *fin;
    FILE *fout;
    int character;
    fin=fopen("in.txt", "r");
    fout=fopen("out.txt","w");
    while((character=fgetc(fin))!=EOF){
        putchar(character); // It displays the right character (UTF8) in the terminal
        fprintf(fout,"%c ",character); // It displays weird characters in the file
    }
    fclose(fin);
    fclose(fout);
    printf("\nFile has been created...\n");
    return 0;
}

目前,它适用于英文字符。


问题答案:

这段代码对我有用:

/* fgetwc example */
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>
int main ()
{
  setlocale(LC_ALL, "en_US.UTF-8");
  FILE * fin;
  FILE * fout;
  wint_t wc;
  fin=fopen ("in.txt","r");
  fout=fopen("out.txt","w");
  while((wc=fgetwc(fin))!=WEOF){
        // work with: "wc"
  }
  fclose(fin);
  fclose(fout);
  printf("File has been created...\n");
  return 0;
}


 类似资料:
  • 我正在尝试从C#中的文档文件中读取文本 我无法在C#中创建新文档。 我尝试使用“using microsoft.office.interop.word”或“using system.windows.documents”,但它无法识别代码“Document doc=new Document”。 此外,如何从.docx文件中读取文本? 会有什么问题?TNX

  • 如何从文件中读取文本并将文本写入文件? 我一直在学习如何在文件中读写文本。我发现了另一个关于从资产中读取的问题,但这是不同的。我将根据从文档中学到的知识,在下面添加我的答案。

  • 我试图从一个文件中读取每个月的平均降雨量,该文件如下所示: 1月3日2日21.2 3月2日

  • 问题内容: 我试图将文本文件加载到我的JavaScript文件中,然后从该文件中读取行以获取信息,我尝试使用FileReader,但它似乎无法正常工作。有人可以帮忙吗? 问题答案: 是的,可以使用FileReader,我已经做了一个示例,这是代码: 最后,我只是读了其他一些吸引我的答案,但正如他们所建议的那样,您可能正在寻找使您能够从JavaScript文件所在的服务器(或设备)加载文本文件的代码

  • 我想从文本文件中读取文本。在下面的代码中,会发生异常(这意味着它会转到catch块)。我将文本文件放在应用程序文件夹中。我应该把这个文本文件(mani.txt)放在哪里才能正确阅读?

  • 我正在尝试获取一个文件()并创建该文件的副本(),该副本只对行进行编号。我现在的代码没有打印错误,但它给了我以下信息: <_io.textiowrapper name='mydata.out'mode='w'encoding='utf-8'> 如果将替换为,它就可以满足我的需要。我做错了什么?