2012-01-03 1 views

答えて

12

もちろんです。 forループ(あなたが必要とする行数を読み始めた時点で知っている場合)またはwhileループの中で、一度に1行だけを読み込んで使用してください(ReadLine()などを使用してください)あなたがEOFまたは特定の入力に達したときに読んでください)。

EDIT:

確か:

while ((line = Console.ReadLine()) != null) { 
    // Do whatever you want here with line 
} 
+0

私はループ中にそれを行う方法がわかりません、私は次の行があるかどうかをチェックする方法を知らない!いくつかのヒントや例をお願いします。 – nenito

+1

上記の投稿への編集を参照してください。 – Dan

+0

ありがとう、それは有用ですが、どの行を最後の行にすることができますか?現在、プログラムは新しい行の入力を待機します。 – nenito

1

ここで行うための最善のことは、ループを使用している:

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(); 
} 

それとも、このような何か行うことができます:

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"); 
1

簡単な例:

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; 
} 
} 
2

他は、ユーザが「EXIT」のような特別な何かを入力することを期待しながら、空行が検出されるまで、他の回答ここでは、ループの一部。それは、ファイルの末尾に当たるときはnullを返します)リダイレクト入力Console.ReadLine(の場合

myprog.exe < somefile.txt 

:コンソールからの読み出しは、人のタイピングやリダイレクトされた入力ファイルのいずれかであることに留意してください。プログラムを対話的に実行しているユーザーの場合、ファイル文字の終わりを入力する方法(Ctrl + Zに続いてEnterまたはF6を入力)を入力する方法を知っておく必要があります。対話型ユーザーの場合は、入力の終了を知らせる方法を知らせる必要があります。

関連する問題