UTF-8形式の文字を含むファイルを読み込もうとしています。UTF8からのファイルの読み込み
FILE * f = fopen(argv[1], "r");
if(f == NULL){
printf("cannot open %s\n", argv[1]);
exit(-1);
}
unsigned int c = getc();
while(c != EOF){
printf("%d\n", c); // UB
c = getchar();
}
どのようにファイルを読み込んでビット表現にするのですか?たとえば、次のようになります。0xA3
今は実際の整数を表示しています。 基本的に、文字をビット単位で読み込むにはどうすればよいですか?
それが原因であなたがコードを書いている途中の整数を印刷しています。あなたがしようとしていることをもっと説明できますか?あなたはUTF-8がマルチバイトエンコーディングであることを知っていますか? –
変更printf( "%d \ n"、c) 'printf("%#x \ n "、c)' –
現代バイナリコンピュータのすべてのデータはバイナリ形式です。そのデータを*表示する方法を選択するだけです。あなたのケースでは、['printf'](http://en.cppreference.com/w/c/io/fprintf)とその異なるフォーマットについてもっと読むことをお勧めします。また、ちょうど*任意の[初心者の本](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)またはチュートリアルでは、 16進表記です。 –