Ich versuche, den Namen der Eingabedatei in meinem C-Programm nicht fest zu codieren. Ich habe alle anderen Komponenten, wenn ich den Dateinamen fest codiere. Aber möchte in der Lage sein, einen String-Dateinamen zu übergeben. Ich versuche, eine Datei namens Matrix.c
kompilieren und nennen Sie die ausführbare Datei matrix
.So übergeben Sie einen Dateinamen beim Ausführen eines C-Programms
Also, im Terminal, wenn ich zu meinem Arbeitsverzeichnis komme.
gcc -g Matrix.c -o matrix
dann, wenn ich kompilieren
./matrix
Es macht keinen Dateinamen an sie übergeben haben, so bin ich Gonna Check für das und haben den Eingangs Benutzer einen Dateinamen zu laden.
Wenn jedoch jemand den Dateinamen übergibt, sollte es übergeben werden:
./matrix filename.txt
oder
./matrix < filename.txt
Bei letzterer Option kann ich nicht den Namen des Arguments scheinen, von argv[1]
an die Funktion übergeben - es ist nur "(Null)".
Ich weiß, das ist sehr einfach Frage. Bin ich aber gerade komplett von meinem Rocker abgekommen? Hat es etwas damit zu tun, dass ich auf OS X El Capitan laufe? Ich weiß, dass ich die Konvention '<' vorher benutzt habe.
Ich habe mich umgeschaut und es gibt einige verschiedene Lösungen und verschiedene Möglichkeiten, damit umzugehen. – WallofKron
können Sie uns den Code von 'matrix.c' zeigen? Das Umleiten mit '<' erfordert kein zusätzliches Argument, sondern das Lesen von 'stdin' mit' scanf', 'gets', egal wie Sie an der Standardeingabe gearbeitet haben. –
Wenn Sie