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を省いて実行時に落ちるようになるのはやめてくれ
むしろ、落ちるくらいなら無駄なメッセージ出力を無くしてしまった方がいい
ニュース
- 消費減税「極めてコスパ悪い政策」 渡辺・東大名誉教授が国会で意見 [蚤の市★]
- 「高度なAIは人類滅亡のリスクをもたらす」──生成AI「Claude」開発元の米Anthropicが投資家向け資料で言及★2 [♪♪♪★]
- 【野球】ドジャース、佐藤輝明の獲得の意向示す 海外メディア注目、新たなスターで「日本代表チーム」の人気はさらに加速と予測 [冬月記者★]
- 【映画】『踊る大捜査線 N.E.W.』が興収32億円で失速懸念 [ヴァイヴァー★]
- 「上げられるのは法人税だけ」防衛財源で浮上 経済界真っ向反発 [蚤の市★]
- 【芸能】土田晃之 埼玉県人おなじみの地方都市明かす 「本当に何もないんですけど、埼玉県人はみんな行く」 [冬月記者★]
- 【悲報】GMO社長「幼稚園、小学生のお子さんの情報を拡散するなど、人として有り得ません」 [834922174]
- 【悲報】GMOの被害者一号の小山さん、全てを失うww [347751896]
- 【速報】GMO熊谷、インターポールに通報wwwwwwwwwwwwwwwwwwww [398059782]
- GMO熊谷、ドヤ顔自撮り★3 [931948549]
- 【悲報】ハッカーに公開されたGMO利用者の個人情報、明らかに一線を超えているwwwwwwwwwww [404143271]
- 女向けエロ本ってなんのためにあるの?