2017-03-10 3 views
1

Ich mache einige Herausforderungen im HackerRank. Normalerweise verwende ich ein windows Form Projekt in Visual Studio, um das Debuggen zu tun, aber realisiere, dass ich viel Zeit verloren habe, um die Testfälle einzugeben. Deshalb möchte ich Vorschlag einer Art und Weise kann ich simulieren einfach, die console.ReadLine()Wie kann ich Benutzereingaben von einer Konsole simulieren?

Normalerweise sind die Herausforderungen haben sich die Fälle beschreiben mit etwas wie folgt aus:

5 
1 2 1 3 2 
3 2 

Und dann wie gelesen: drei mit Readline

static void Main(String[] args) { 
    int n = Convert.ToInt32(Console.ReadLine()); 
    string[] squares_temp = Console.ReadLine().Split(' '); 
    int[] squares = Array.ConvertAll(squares_temp,Int32.Parse); 
    string[] tokens_d = Console.ReadLine().Split(' '); 
    int d = Convert.ToInt32(tokens_d[0]); 
    int m = Convert.ToInt32(tokens_d[1]); 
    // your code goes here 
} 

Moment dachte ich in eine testCase.txt-Datei erstellen und Stream verwenden.

using (StreamReader sr = new StreamReader("testCase.txt")) 
{ 
    string line; 
    // Read and display lines from the file until the end of 
    // the file is reached. 
    while ((line = sr.ReadLine()) != null) 
    { 
     Console.WriteLine(line); 
    } 
} 

So kann ich Console.ReadLine() mit sr.ReadLine(), aber dies muss mit einem Texteditor geöffnet hat, löschen Sie alten Fall, kopieren Sie die neuen ersetzen kann und die Datei jedes Mal speichern.

So ist es eine Möglichkeit, eine Textbox verwenden kann, so dass nur copy/paste in der Textbox braucht und verwendet Stream oder etwas ähnliches aus der Textbox zu lesen?

+0

Bietet .NET, um ein High-Level-Wrapper für [ 'WriteConsoleInput'] (https://msdn.microsoft.com/en-us/library/ms687403)? Das sollte * einfach sein. – eryksun

+0

Regular "Hacker" nur Eingabe Umleitung verwenden ... My.exe

Antwort

1

Sie können die Klasse StringReader verwenden, um von einer string statt einer Datei zu lesen.

+0

Großen. Ich wusste, könnte etwas einfacher finden. –

+0

Großartig! Fühlen Sie sich frei, diese Antwort zu akzeptieren, wenn es Ihr Problem löst :) –

Verwandte Themen