現在ゲームを行っていますが、テキストファイルから値を読み取る際に問題があるようです。何らかの理由で、私が値を読むと、ファイルに書き込んだときに実際の値そのものではなく、値のASCIIコードが得られます。私はすべてのASCII変換関数と文字列変換関数について試しましたが、わかりません。ファイルからintを読み取ると、ASCIIが返されます
私は整数の2次元配列を使用します。私はネストされたforループを使って各要素をファイルに書き出します。私はファイルを見て、値は正しいですが、私はなぜそれがASCIIコードを返すのか分かりません。
ファイル書き込みする:
for (int i = 0; i < level.MaxRows(); i++)
{
for (int j = 0; j < level.MaxCols(); j++)
{
fileWrite.Write(level.GetValueAtIndex(i, j) + " ");
//Console.WriteLine(level.GetValueAtIndex(i, j));
}
//add new line
fileWrite.WriteLine();
}
そして、ここでは、私は、ファイルから値を読み取るコードは次のとおりです。
string str = "";
int iter = 0; //used to iterate in each column of array
for (int i = 0; i < level.MaxRows(); i++)
{
iter = 0;
//TODO: For some reason, the file is returning ASCII code, convert to int
//keep reading characters until a space is reached.
str = fileRead.ReadLine();
//take the above string and extract the values from it.
//Place each value in the level.
foreach (char id in str)
{
if (id != ' ')
{
//convert id to an int
num = (int)id;
level.ChangeTile(i, iter, num);
iter++;
}
}
これここで私が書くと、ファイルへの読み取りに使用しているコードです値を読み取るために使用するループの最新バージョンです。他の値を読み取っても問題ありません。それはちょうど私が配列に行くとき、事が間違って行く。私の質問は、なぜASCIIへの変換は起こったのでしょうか?それを理解できれば、問題を解決できるかもしれません。私は自分のゲームを作るためにXNA 4を使用しています。
その答えの問題は、私がファイルに書き込む他の値があり、それを読み取ることができることです。混乱の原因となっているアレイの値だけです。私はそれがすべて文字列に変換されることを知っています。私は連結を削除し、私は同じ問題を抱えています。 – King
level.GetValueAtIndex(i、j)はどのデータ型を返しますか?私はそれが整数であると仮定していた。 –
fileWriteはどのようなタイプですか? –