#include<stdio.h>
#include<stdlib.h>//exit()函数的头文件
int main()
{
FILE* fp;
fp = fopen("text.txt", "r");
if (feof(fp))
{
printf("NULL");
exit(0);//表示如果读取为空文件就正常退出
}
char s[20];
fgets(s,20, fp);
puts(s);
fclose(fp);
}
ファイルの内容は次のとおりです。
実行結果に文字化けが表示される
テキストを読み込んで出力したい場合は、ファイルを開いて名前を付けて保存し、ファイルのエンコードをANSLに変更すれば文字化けすることはありません。
以下のように文字化けは発生しません。
補足内容:さまざまな国や地域ではさまざまな標準が策定されており、その結果、GB2312、GBK、Big5、Shift_JIS などの独自のエンコード標準が作成されています。これらは 1 ~ 4バイトを使用して、ANSI エンコーディングと呼ばれるさまざまな中国語文字拡張エンコーディング方法を表します。簡体字中国語 Windows オペレーティング システムでは、ANSI エンコードは GBK エンコードを表し、日本語 Windows オペレーティング システムでは、ANSI エンコードは Shift_JIS エンコードを表します。異なる ANSI コードには互換性がなく、情報が国際的に交換される場合、2 つの言語に属するテキストを同じ ANSI コード化テキストに格納することはできません。もちろん、ANSI エンコードの場合、 0x00 ~ 0x7F の間の文字は1 文字を表す 1 バイトのままです。これは、 ANSI エンコードとUnicodeエンコードの最大かつ最も明白な違いです。