Ich versuche ganze Zahlen aus der Eingabe zu lesen und dann in eine Liste zu schreiben.Eingabe in Liste lesen und speichern, Reihenfolge der Liste in TCL/TK-Skripten umkehren
Danach kehren Sie die Ganzzahlen um und zeigen die umgekehrte Reihenfolge dieser Liste an.
Problem: Alle Eingaben werden nicht in der Liste gespeichert.
Ich möchte es viele Ganzzahlen in einer Zeile lesen und INSTEAD von dem Lesen einer Ganzzahl pro Zeile speichern.
Code:
#! /bin/env tclsh
set l1 {}
while 1 {
# reads input
set data [gets stdin]
# issue (reads only once per line)
# issue (want to make it read many integers in 1 line)
if {[eof stdin] || [scan $data "%d" myint] != 1} {
break
}
# adds input to list
lappend l1 $myint
}
set l2 {}
# make a list 2 with integers in REVERSED order
for {set i [llength $l1]} {$i >= 0} {incr i -1} {
lappend l2 [lindex $l1 $i]
}
# print both lists to compare
puts $l1
puts $l2
Dies wird die Eingabe '09' auch akzeptieren, für die Sie eine Schleife durch alle Elemente aus der letzten Liste und entfernen Sie es, indem Sie einfach mit dem char als '0'' String trimleft' tun. – Dinesh
Um dies zu verwenden, gehe ich in den Tclsh-Modus und hinter den Code in. Gibt es eine Möglichkeit, ich kann es als "tclsh t.tcl" tun und haben den Eingabebefehl funktioniert? – geforce
Auch wie würde ich GetNum {1,2,3,4} in einem Befehl tun können? Fügen Sie der getNum-Funktion ein Listenargument hinzu? – geforce