開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の14章(ファイル入出力)14.4(行終端にまつわる謎)設問14-2を解いてみる。
設問14-2.
バイナリファイルを作成しなければならないのにASCIIファイルを作成しているため、MS_DOS?Windowsでは改行が改行、復帰に変更されて1倍と大きくなる。
修正(といっても出力結果はMacでの結果)
コード(TextWrangler)
#include <stdio.h> #include <stdlib.h> #include <string.h> #ifndef __MSDOS__ #include <unistd.h> #endif /* __MSDOS__ */ int main(){ int cur_char; FILE *out_file; /* wではなくwbに変更 */ out_file = fopen("test.out","wb"); if(out_file == NULL){ fprintf(stderr,"Cannot open output file\n"); exit(8); } for(cur_char = 0; cur_char < 128; ++cur_char){ fputc(cur_char,out_file); } fclose(out_file); return(0); }
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample $ cat test.out !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$
0 コメント:
コメントを投稿