Có một hàm, có thể đọc một dòng đơn lẻ từ đầu vào của giao diện điều khiển (Console.ReadLine()
), nhưng tôi muốn đọc hoặc một số dòng tùy ý, không rõ lúc biên dịch.Có thể đọc số dòng chưa biết từ bàn điều khiển trong C# không?
Trả lời
Tất nhiên rồi. Chỉ cần sử dụng chỉ đọc một dòng (sử dụng ReadLine()
hoặc bất kỳ thứ gì khác bạn muốn) tại một thời điểm trong vòng lặp for (nếu bạn biết lúc bắt đầu đọc số dòng bạn cần) hoặc trong vòng lặp while (nếu bạn muốn dừng đọc khi bạn đạt đến EOF
hoặc một đầu vào nhất định).
EDIT:
chắc:
while ((line = Console.ReadLine()) != null) {
// Do whatever you want here with line
}
Điều tốt nhất để làm ở đây là sử dụng một vòng lặp:
string input;
Console.WriteLine("Input your text (type EXIT to terminate): ");
input = Console.ReadLine();
while (input.ToUpper() != "EXIT")
{
// do something with input
Console.WriteLine("Input your text(type EXIT to terminate): ");
input = Console.ReadLine();
}
Hoặc bạn có thể làm điều gì đó như thế này:
string input;
do
{
Console.WriteLine("Input your text (type EXIT to terminate): ");
input = Console.ReadLine();
if (input.ToUpper() != "EXIT")
{
// do something with the input
}
} while (input.ToUpper() != "EXIT");
đơn giản ví dụ:
class Program
{
static void Main()
{
CountLinesInFile("test.txt"); // sample input in file format
}
static long CountLinesInFile(string f)
{
long count = 0;
using (StreamReader r = new StreamReader(f))
{
string line;
while ((line = r.ReadLine()) != null)
{
count++;
}
}
return count;
}
}
Một số các câu trả lời khác ở đây vòng lặp cho đến khi một dòng null được gặp phải trong khi những người khác mong đợi người dùng gõ một cái gì đó đặc biệt như "EXIT". Hãy ghi nhớ rằng đọc từ giao diện điều khiển có thể là một trong hai người đánh máy hoặc một tập tin đầu vào chuyển hướng:
myprog.exe < somefile.txt
Trong trường hợp chuyển hướng Console.ReadLine đầu vào() sẽ trả về null khi nó chạm vào cuối của tập tin. Trong trường hợp người dùng chạy chương trình tương tác, họ sẽ phải biết cách nhập ký tự kết thúc của tệp (Ctrl + Z, sau đó nhập hoặc F6, sau đó nhập). Nếu đó là người dùng tương tác, bạn có thể cần cho họ biết cách báo hiệu kết thúc đầu vào.
- 1. Có thể đọc từ bảng điều khiển trong Dart không?
- 2. Cách đọc đầu vào rất dài từ bàn điều khiển trong C#?
- 3. Cách thành ngữ để viết mã Clojure để đọc nhiều dòng từ bàn điều khiển?
- 4. Bắt đầu ra bàn điều khiển từ lọ trong C#
- 5. Cập nhật dòng hiện tại trong Bàn điều khiển VB
- 6. Bàn điều khiển C++ Win32 Màu
- 7. Không thể sử dụng MongoDB từ ứng dụng bàn điều khiển C#
- 8. AngularJS: Đọc thông số tuyến từ trong bộ điều khiển
- 9. In tin nhắn tới bàn điều khiển từ C++ DLL
- 10. Trình bao MongoDB: đọc một dòng từ bảng điều khiển
- 11. Bàn điều khiển toàn màn hình C#?
- 12. Bàn điều khiển RGB cụ thể Màu văn bản C++
- 13. Bàn điều khiển C#, Console.Xóa sự cố
- 14. Lệnh C++ popen mà không cần bàn điều khiển
- 15. Không có đầu ra bàn điều khiển trong Eclipse Juno
- 16. Không có đầu ra bàn điều khiển trên cout
- 17. Bàn điều khiển Supress khi gọi "hệ thống" trong C++
- 18. Cách tốt nhất để đọc các tham số dòng lệnh trong ứng dụng bảng điều khiển
- 19. VLC điều khiển từ xa từ C#
- 20. Có thể ghi vào bàn điều khiển mongodb trong thực thi javascript không?
- 21. Trong R, có thể chuyển hướng đầu ra của bàn điều khiển sang một biến không?
- 22. Cách xuất ra bàn điều khiển trong C++/Windows
- 23. Đầu ra bàn điều khiển C++ trong Netbeans
- 24. Đầu ra bàn điều khiển màu với C++ trong Windows
- 25. Ẩn bàn điều khiển trong chức năng C system(), Win
- 26. Không có đầu ra cho bàn điều khiển từ một ứng dụng WPF?
- 27. C# Điều khiển dòng thời gian
- 28. đọc số không rõ các số nguyên từ stdin (C)
- 29. Tôi có thể đánh dấu điều khiển từ xa GIT là chỉ đọc không?
- 30. Móc điều kiện trước cam kết có điều khiển từ dòng lệnh cho GIT: Có thể không?
Tôi không biết làm thế nào để làm điều đó với vòng lặp trong khi, tôi không biết làm thế nào để kiểm tra xem có một dòng tiếp theo hay không! Một số gợi ý hoặc một ví dụ, xin vui lòng! – nenito
Ok. Xem chỉnh sửa cho bài đăng ở trên. – Dan
Cảm ơn, nó rất hữu ích, nhưng làm thế nào tôi có thể xác định dòng nào là dòng cuối cùng? Hiện tại chương trình sẽ đợi một dòng đầu vào mới. – nenito