UTF-16BEのテキストファイルをUTF-8に変換
Winの人は(ry
#include <stdio.h>
FILE*i,*o;int a,b;int F(int c){return putc(128|c%64,o);}int main(int c,char**v)
{if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w")))for(;a=getc(i),a-EOF;((a=a<<8
|getc(i))>>11!=27)?a<128?putc(a,o):a<2048?(putc(192|a>>6,o),F(a)):(putc(224|a>>
12,o),F(a>>6),F(a)):(b=getc(i)%4,c=getc(i),a=64+a%1024,putc(240|a>>8,o),F(a/4),
F(a<<4|b*4|c>>6),F(c)));return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c
<3?"usage: %s input output\n":"fairu wo hirakenaijanaika! itteyoshi!!\n",*v);}
エンディアンを自動判定するのは難しそうだな…
それから、前スレ969のプログラム(UTF-8→UTF-16)を4文字ほど短縮した
#include <stdio.h>
FILE*i,*o;int l,p,t[]={0,192,224,240},r=65536;void P(int p){putc(p>>8,o);putc(p
%256,o);}int main(int c,char**v){if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w"
)))for(fputs("\xfe\xff",o);(c=getc(i))-EOF;(p-=r)>=0?P(p/1024+55296),P(56320+p%
1024):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:1];l--;p=p<<
6|getc(i)%128);return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c<3?"usag\
e: %s input output\n":"fairu wo hirakenurupoaijanaika! itteyoshi!!\n",*v);}
あと、俺以外の人が変数の型を省いて短縮するのはいいけど、
stderrを省いて実行時に落ちるようになるのはやめてくれ
むしろ、落ちるくらいなら無駄なメッセージ出力を無くしてしまった方がいい
探検
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- いじめられてる男子中学生だけど質問ある?
