2009-09-02 21 views
10

Khi tôi chạy mã này, số ở đầu cửa sổ đầu ra là 99701. Tại sao tôi không nhận được xem tất cả các cách thức thông qua 1? Tôi thực sự thấy tất cả các con số nhận được outputted, nhưng trên cửa sổ giao diện điều khiển, tôi chỉ có thể SCROLL đủ cao để xem 99701 (tôi đoán). Tôi đang sử dụng Visual C# express trên Vista Home. : D(Console.BufferHeight) Tôi không thể xem/cuộn để xem tất cả đầu ra giao diện điều khiển với Console.WriteLine

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Text.RegularExpressions; 
using utilities; 

namespace Testing_Project { 
    class Program { 
     static void Main(string[] args) { 
      List<string> myList = new List<string>(); 

      for (int x = 0; x < 100000; x++) 
       myList.Add(x.ToString()); 
      foreach (string s in myList) { 
       Console.WriteLine(s); 
      } 

      Console.Read(); 
     } 
    } 
} 

Console.Write (s) làm tốt, nhưng Console.Write (s + "\ n") thì không. Tôi đoán tôi chỉ có thể cuộn lên qua rất nhiều dòng mới?

+0

1 cho bạn câu hỏi, bởi vì rất nhiều người đã nhầm nó;) –

Trả lời

25

Từ .Net Framework 2.0 và xa hơn nữa, bạn có thể thay đổi chiều cao đệm từ bên trong chương trình của riêng bạn với Console.BufferHeight:


Console.BufferHeight = Int16.MaxValue - 1; // ***** Alters the BufferHeight ***** 
List<string> myList = new List<string>(); 
for (int x = 0; x < 100000; x++) 
    myList.Add(x.ToString()); 
foreach (string s in myList) { 
    Console.WriteLine(s); 
} 

Chiều cao tối đa là Int16.MaxValue - 1.

+0

Hmm, thực sự bạn có thể? Tốt để biết. Tuy nhiên không đủ cho 100000 mặt hàng. :) – Botz3000

+0

Điều đó đưa tôi đến 67235, nhưng quan trọng hơn là nó giải thích vấn đề: D –

+0

Rock'n'Roll! : D –

11

300 có vẻ là kích thước bộ đệm bảng điều khiển mặc định của bạn. Đây là cài đặt Windows và nó không liên quan đến ứng dụng của bạn.

Bạn có thể thay đổi kích thước bộ đệm bảng điều khiển bằng cách tạo lối tắt cho tệp thực thi. Sau đó nhấp chuột phải vào shortcut và chọn Properties. Đi vào tab Tùy chọn và thay đổi kích thước bộ đệm.

Dường như tôi đã không kiểm tra tính năng đó trong một thời gian dài, nhưng có vẻ như bây giờ có thể sửa đổi được. Xem Alfred Myers answer

+3

Nó có thể được thay đổi thông qua Console.BufferHeight lên đến Int16.MaxValue - 1 –

2

Bạn không thể xem thêm nữa vì bảng điều khiển không lưu nhiều hơn 300 hàng theo mặc định. Sử dụng hộp thoại cài đặt cho bảng điều khiển để thay đổi điều này - Tôi tin bạn chỉ có thể bắt đầu lời nhắc lệnh và thay đổi chúng tại đó, sau đó chạy chương trình của bạn.

Alfred đã chỉ ra cách ứng dụng của bạn có thể thay đổi chiều cao bộ đệm.

+1

Vâng. Nó có thể được thay đổi thông qua Console.BufferHeight lên đến Int16.MaxValue - 1 –

+0

Tôi đã chỉnh sửa. Tôi sẽ chỉnh sửa cho phù hợp. –

2

Điều này không liên quan gì đến C#, nhưng thực ra bộ đệm đầu ra trong dấu nhắc lệnh chỉ dài 300 dòng theo mặc định. Bạn có thể thay đổi điều đó trong cài đặt cửa sổ, mặc dù có thể đây là cơ hội để thử triển khai tính năng "giống" hơn, tính năng này sẽ thoát ra khỏi vòng lặp mỗi lần một màn hình dữ liệu được xuất. Sau đó, khi bạn nhấn một phím, nó sẽ xuất ra một màn hình khác, v.v.

+0

Có thể thay đổi thông qua Console.BufferHeight tối đa Int16.MaxValue - 1 –

3

Đây là giao diện điều khiển chứ không phải ứng dụng của bạn.

Thay vào đó, bạn có thể sử dụng Debug.WriteLine (System.Diagnostics) và sử dụng cửa sổ Output trong Visual Studio. Nó có một bộ đệm lớn hơn nhiều (chỉ cần chắc chắn để chạy một xây dựng gỡ lỗi).

+0

Bạn có thể thay đổi cài đặt của bảng điều khiển. Nó có thể được thay đổi thông qua Console.BufferHeight lên đến Int16.MaxValue - 1 –

Các vấn đề liên quan