Konsol girişinden (Console.ReadLine()
) tek bir satırı okuyabilen, ancak derleme zamanında bilinmeyen okuma veya bazı rasgele sayı satırlarını okuyabilen bir işlev vardır.C# içindeki konsoldan bilinmeyen satır sayısını okumak mümkün mü?
cevap
Elbette öyle. Sadece bir satırda (ReadLine()
'u veya başka bir şeye ihtiyacınız varsa) sadece bir döngü içinde (eğer kaç satır ihtiyacınız olduğunu okuyup okumadığınızı biliyorsanız) veya bir süre döngü içinde (eğer durdurmak istiyorsanız) kullanın. EOF
veya belirli bir girişe ulaştığınızda okuma).
DÜZENLEME:
Emin:
while ((line = Console.ReadLine()) != null) {
// Do whatever you want here with line
}
burada yapılacak en iyi şey bir döngü kullanmaktır:
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();
}
Yoksa böyle bir şey yapabileceğini:
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");
basit bir örnek:
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;
}
}
diğerleri kullanıcı "EXIT" gibi özel bir şey yazmak için bekliyoruz ederken boş satır karşılaştı kadar diğer cevaplar burada döngü bazıları. konsoldan okuma kişi yazarak veya yeniden yönlendirilen girdi dosyası ya olabileceğini unutmayın: dosyanın sonuna çarptığında
myprog.exe < somefile.txt
yönlendirildi giriş Console.ReadLine durumunda() return null olacaktır. Programın etkileşimli olarak çalıştırılması durumunda, dosya karakterinin sonuna nasıl girileceğini (Ctrl + Z, ardından enter veya F6 ve ardından enter) öğrenmesi gerekir. Etkileşimli bir kullanıcıysa, girişin sonunu nasıl bildireceğini onlara bildirmeniz gerekebilir.
Döngü sırasında nasıl yapılacağını bilmiyorum, bir sonraki satır olup olmadığını nasıl kontrol edeceğimi bilmiyorum! Bazı ipuçları veya bir örnek, lütfen! – nenito
Tamam. Yukarıdaki gönderiye yapılan düzenlemeye bakın. – Dan
Teşekkürler, yardımcı oluyor, ancak hangisinin sonuncu olduğunu nasıl belirleyebilirim? Şu anda program yeni bir hat girişi için bekleyecektir. – nenito