10

テキストファイルの文字数をカウントするためにこのコードを書きました:

sr.BaseStream.Position = 0;
sr.DiscardBufferedData();
int Ccount = 0;
while (sr.Peek() != -1)
{
  sr.Read();
  Ccount++;
}

しかし、このコードをファイルに適用した後、以下が含まれます:

1
2
3
4
5
6
7
8
9
0

アカウント = 30 ???? なぜ?Macbook の仮想ボックスで Windows Xp を使用しています。プログラムは Microsoft Visual Basic 2010 を使用しています。

4

5 に答える 5

14

一度に 1 文字ずつ読んでおり、各行には 3 つの文字が含まれています。

  • 一桁
  • 1 つのキャリッジ リターン ( \r)
  • 1 つの改行 ( \n)

(Windows は\r\n改行シーケンスとして使用します。Mac 上の VM で実行しているという事実は、それに影響しません。)

于 2013-04-15T13:59:08.317 に答える
3

これを行う簡単な方法があります。*.txt ファイル全体を文字列配列にして、それを測定します。

int count = 0;

string[] Text = File.ReadAllLines(/*Path to the file here*/);

for (int i = 0; i < Text.Count(); i++)
{
        count += Text[i].Length;
}
于 2013-04-15T14:01:21.203 に答える
2

Windows は通常\r\n、ASCII 文字 0x13 と 0x10 を改行に使用します。

これを行うことで、これを自分自身に証明することをお勧めします:

Console.WriteLine("0x{0:x}", sr.Read());
于 2013-04-15T13:59:48.367 に答える