VC++で社内業務メンテンナンス担当となりました。
初心者のたくみです。
<結果>
下記コーディングでfgets実行すると
inputdata[0]=-1,[1]=-2,[2]=A,[3]=0,[4]=A,[5]=0,[6]=A.....[15]=A,
[16]=0
となります。
<ABC.TXTの内容>
AAAAAAAAAAAAAAAA
<コーディング>
FILE *fp = NULL;
char FILEPATH[256];
char inputdata[17] =0;
strcat(FILEPATH, ABC.TXT);
fp = fopen(FILEPATH, r);
fgets(inputdata,17,fp);
ABC,TXTの内容は、間違いなく改行もされているのですが
何故、こうなるのか解りません。
宜しくお願い申し上げます。
読み取り結果が FF FE 41 00 41 00 となっているようだな。
これはつまり BOM つき UTF16LE Unicode Text っつーことだ。
http://www.atmarkit.co.jp/aig/01xml/bom.html
動作も結果もまったくもって正常。
んで、どうなって欲しいわけ?
テキストファイルとは何か、ということがわかってなさげ。
テキストファイルとは、文字をエンコードした文字コードを記録したファイルです。
エンコード方法には複数(Shift-JIS とか EUC とか Unicode とか)あり、どの方法を
使ったかによって、同じ 'A' という文字でも、どんな文字コードになるかは変わりま
す。
メモ帳で見た時に AAA と書かれていたからといって、即、0x41 0x41 0x41 だと決め
つけることはできません。
一応類似スレです。
VS.NET2003 C++でUnicodeファイルの読込み
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1660768&SiteID=7
tetrapodさん、ご回答ありがとうございました。
私がやりたかったことは、
<ABC.TXTの内容>
AAAAAAAAAAAAAAAAをそのまま読込むことです。
BOMつきだったのでこうなったのですね。
タグ付テキストにして、実行したら正常に読めました。m(_ _)m
感謝です。(^.^)/
シャノン さん、Blueさん、ご回答ありがとうございました。
テキストファイルにもいろいろあるのですね。
これを参考に勉強させて頂きます。感謝!