2016-12-09 7 views
-2

Ich habe ein C-Programm, das mit int main() beginnt und irgendwo im Code hat eine scanf(%d %c %d, &num1, &ch, &num2).Wie Argumente in scanf injizieren?

Jetzt habe ich ein anderes Bash-Skript, das das C-Programm testen muss. Ich möchte, dass das Bash-Skript das C-Programm ausführt und die Argumente, die es als Eingabe erhalten hat, in das scanf eingibt (ohne das C-Programm anzuhalten und auf Eingaben zu warten).

Wie kann ich das tun?

+0

Sie verwenden in dem angegebenen Beispiel nicht & und "" in scanf. –

+0

@ Sanjay-sopho bearbeitet, danke –

+1

'foo EOF

Antwort

0

Erstellen Sie eine Textdatei mit der gewünschten Eingabe, durch Leerzeichen getrennt.

Zum Beispiel für die scanf("%d %c %d", &num1, &ch, &num2); Anweisung der Inhalt testinput.txt wäre:

42 x 99 

Speichern Sie diese Datei in das gleiche Verzeichnis wie das Programm.

nun Ihr Programm mit Eingabeumleitung

./yourprogram < testinput.txt 

Scanf laufen wird von testinput.txt statt von der Konsole lesen.

+0

Gibt es eine Möglichkeit, dies ohne eine Datei zu tun? Nur mit Text? –

+0

@UFCInsider Ja, pipe 'echo' in Ihr Programm. – melpomene

+0

'echo" 2 a 9 "| ./Myprogramm' ist was du willst. – selbie