いつもお世話になっております。
表題の質問ですが、C#のRead()とCのgetc()の違いについて伺いたいです
あるテキストファイルはchar型の数字をそのまま書かれた数字の羅列で(アスキーではない)、C言語のgetc関数を使って読み進めていました
C#のReadtoEnd()とSplit()またはRead()を使って読み進めていくと0~127までは正常なのですが、それより大きい値で失敗しました
また、readtoendで得たStringをforeachでアクセスしたときは別の誤った値を読み込みました
この違いはどこから来るのでしょうか?
また、正しく読み込むにはどうすればよいでしょうか?
以下が実行結果です
C getc 128(正解)
C# read 65431
C# readtoend(foreachでアクセス) 6533
追記:
失礼しました
出力が複数あるのをしらずにコードを省略していました
テキストファイルはスペースとintの数字がそのまま書き込まれていて,普通にメモ帳で開いたら文字化けして読めない状態です
readtiend版とC言語版後は今手元にないので明日追記します
C#
1m_reader = new System.IO.StreamReader(PATH ); 2 3// 1行ずつ読み込んで出力 4while( m_reader.Peek() >= 0 ) 5 Console.WriteLine(m_reader.Read()); 6 7m_reader.Close();
回答1件
あなたの回答
tips
プレビュー