トップページ > 過去ログ > 記事閲覧
キャストできない?
名前:ソラ 日時: 2010/01/30 22:29

はじめまして。ソラと申します。 さっそく質問なのですが…… fgetc関数を使って、ファイルからひと文字だけを呼んできて、配列に格納する場合、 fgetc関数は値をint型で返すのでchar型の配列に格納する際の記述としては ch = fgetc(filename); str[i] = (char)ch; (ループで、配列にEOFがあらわれるまで格納する) になると思います。 ですが、なぜかうまくキャストされていないのか、 正しく表示されません。 文字化け?した状態で表示されます。 『←のような記号が文字の数だけ表示されます。 お聞きしたいのは、発生原因と対処方法です。 以下に、OS、開発環境、処理部分のソースを記述しておきます。 OS:windows7HomePremium 64bit版 開発環境:VS2008Express Editions ソース while(iGetChar = fgetc(pAccFileName) != EOF) {   cReadString[i] = (char)iGetChar;   i++; } printf("%s\n", cReadString); です。 よろしくお願いします。

Page: 1 |

Re: キャストできない? ( No.1 )
名前:いっち 日時:2010/01/30 23:09

おそらく括弧のくくり忘れだと思います。 while((iGetChar = fgetc(pAccFileName)) != EOF) // <- 代入の順位が低いのでかっこでくくる {   cReadString[i] = (char)iGetChar;   i++; } iGetChar[i] = 0; // <- 多分NullTerminationが必要 printf("%s\n", cReadString);
Re: キャストできない? ( No.2 )
名前:ソラ(解決) 日時:2010/01/30 23:25

>代入の順位が低いのでかっこでくくる あ〜…… 代入の順位…… すっかり忘れていました。 正常動作を確認しました。 素早い返信ありがとうございます。

Page: 1 |