Ich möchte die Ausgabe meines Programms mehrfach lesen. Wenn ich X übergebe, erhalte ich die Ausgabe und zeige sie an, wenn ich Y übergebe, erhalte ich die Ausgabe und zeige sie an, ohne den Prozess neu zu starten. Um es zu versuchen, habe ich ein C-Programm erstellt
#include<stdio.h>
int main()
{
int i;
int j;
while(scanf("%d", &i))
{
for(j = 0; j<=i;j++)
printf("%d\n",j);
}
return 0;
}
und jetzt bin ich interfacting es mit C#, wo, wenn ich einen Text in das Textfeld eingeben es durch die Umleitung standardinput (ein Streamwriter) an das Programm übergeben wird und um die Ausgabe zu lesen, rufe ich es standardoutput (ein Streamreader).readtoend().
Aber bei mir funktioniert es nicht. Da es in Wartezustand geht, bis der Strom einige Anzeige sagen Ende gelesen wurde zurückgibt.
Wie kann ich so etwas erreichen?
Ich habe auch das asynchrone Lesen versucht, bei dem ich die Methode beginoutputread aufrufe, aber dann weiß ich nicht, wann das Lesen beendet ist! Eine Möglichkeit besteht darin, in meinem ursprünglichen Programm eine Markierung hinzuzufügen, die anzeigt, dass die Ausgabe für die aktuelle Eingabe beendet ist. Gibt es eine andere Möglichkeit, dies zu erreichen?