Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
C C - Textdatein als Argument an Mainfunktion übergeben
- Ersteller Tarores
- Erstellt am
asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
Die Suche kann ja nun nicht sehr intensiv gewesen sein. Ich möchte hier im Interesse aller vorschlagen, in Zukunft wenigstens so zu tun, als hättest du versucht, dein Problem selbst zu lösen.Tarores schrieb:ich suche zur Zeit in C eine Möglichkeit, wie ich eine Textdatei übergeben kann um sie dann im weiteren Verlauf zu bearbeiten.
Ja soweit bin ich auch gekommen, so kann man strings und theoretisch auch den Pfad der Datei übergeben, aber dies ist bei mir nunmal nicht das Problem, außer man kann so auch eine Datei direkt übergeben, was bei mir aber im Selbstversuch nicht geklappt hat. Vlt. habe ich etwas falsch gemacht.Eine der Signaturen für die main-Funktion lautet int main( int argc, char** argv );
In argv sind die Argumente, die ans Programm übergeben wurden (argc ist die Anzahl der Argumente). ACHTUNG: argv[ 0 ] ist der Name des Programms selbst.
Die Suche findet ja noch weiterhin statt bislang habe ich jedoch noch nichts sinnvolles, außer so sinnlose Kommentare wie deinen gefunden. Wieso schreibst du überhaupt auf eine Frage einen dummen Kommentar, anstatt zu versuchen zu helfen, da muss wohl jmd. ECHT Langeweile haben.Die Suche kann ja nun nicht sehr intensiv gewesen sein. Ich möchte hier im Interesse aller vorschlagen, in Zukunft wenigstens so zu tun, als hättest du versucht, dein Problem selbst zu lösen.
Nilson
Grand Admiral
- Registriert
- Dez. 2008
- Beiträge
- 25.491
Was willst du genau machen?
Wenn ich dich richtig verstehe, willst du in C ein Programm schreiben. In diesem Programm willst du eine .txt Datei öffnen/schreiben etc. Dazu willst du bei Start des Programms die Datei bzw. den Pfad zu jener übergeben? Soweit richtig?
Und was hat genau bei deinen bisherigen Ansätzen nicht geklappt?
Wenn ich dich richtig verstehe, willst du in C ein Programm schreiben. In diesem Programm willst du eine .txt Datei öffnen/schreiben etc. Dazu willst du bei Start des Programms die Datei bzw. den Pfad zu jener übergeben? Soweit richtig?
Und was hat genau bei deinen bisherigen Ansätzen nicht geklappt?
Rossie
Rear Admiral
- Registriert
- Dez. 2010
- Beiträge
- 5.139
Tarores schrieb:Ja soweit bin ich auch gekommen, so kann man strings und theoretisch auch den Pfad der Datei übergeben, aber dies ist bei mir nunmal nicht das Problem, außer man kann so auch eine Datei direkt übergeben, was bei mir aber im Selbstversuch nicht geklappt hat.
Man übergibt den Pfad der Datei. Wenn Du an den Inhalt der Datei möchtest, musst Du diese in Deinem Programm einlesen.
Alternativ kann man auch von stdin lesen und dem Programm die Datei entsprechend übergeben.
Ja soweit ist es richtig, mal als Bsp. wie ich es versucht habe
int main(int argc, char** argv)
{
f1 = argv[1]; //Wobei FILE f1 weiter oben als File definiert wird
}
Das klappte nicht wirklich und ergab auch keinen wirklichen Sinn, aber einen besseren Ansatz hatte ich nicht gefunden.
int main(int argc, char** argv)
{
f1 = argv[1]; //Wobei FILE f1 weiter oben als File definiert wird
}
Das klappte nicht wirklich und ergab auch keinen wirklichen Sinn, aber einen besseren Ansatz hatte ich nicht gefunden.
BlackMark
Lt. Commander
- Registriert
- Juni 2007
- Beiträge
- 1.346
Am besten ist du besorgst dir ein Grundlagenbuch zu C und fängst an die Sprache zu lernen, dann wirst du sehen, dass das ein triviales Problem ist.
Falls du weder Zeit noch Lust hast die Sprache zu lernen ( warum programmiertst du dann überhaupt?! ), kannst du ja auf Copy and Paste setzen und Tutorialcode kopieren, dazu musst du aber wissen, wonach du suchen musst.
Die zwei Begriffe, nach denen du suchen musst sind zum einen die möglichen Signaturen der main Funktion, so wie es dir antred schon gesagt hat und File IO, damit du Dateien öffnen und dann lesen und schreiben kannst.
Dazu findet man im Internet mehr Tutorials als sonst etwas, du musst nur danach suchen.
Gruß
BlackMark
Falls du weder Zeit noch Lust hast die Sprache zu lernen ( warum programmiertst du dann überhaupt?! ), kannst du ja auf Copy and Paste setzen und Tutorialcode kopieren, dazu musst du aber wissen, wonach du suchen musst.
Die zwei Begriffe, nach denen du suchen musst sind zum einen die möglichen Signaturen der main Funktion, so wie es dir antred schon gesagt hat und File IO, damit du Dateien öffnen und dann lesen und schreiben kannst.
Dazu findet man im Internet mehr Tutorials als sonst etwas, du musst nur danach suchen.
Gruß
BlackMark
Drexel
Lt. Commander
- Registriert
- Jan. 2012
- Beiträge
- 1.737
Ohne C zu kennen:
Du kannst keine Datei übergeben, das Programm kann nur Strings als Parameter erhalten. In Deinem Fall enthält der String den Pfad zur Datei, den musst Du benutzen, um in Deinem Programm die Datei mit C Befehlen zu öffnen und dann z.B. zeilenweise einzulesen.
Sollte aber in jedem C Tutorial zum Umgang mit Textdateien erklärt werden. Google sollte helfen.
Du kannst keine Datei übergeben, das Programm kann nur Strings als Parameter erhalten. In Deinem Fall enthält der String den Pfad zur Datei, den musst Du benutzen, um in Deinem Programm die Datei mit C Befehlen zu öffnen und dann z.B. zeilenweise einzulesen.
Sollte aber in jedem C Tutorial zum Umgang mit Textdateien erklärt werden. Google sollte helfen.
Rossie
Rear Admiral
- Registriert
- Dez. 2010
- Beiträge
- 5.139
Tarores schrieb:Das klappte nicht wirklich und ergab auch keinen wirklichen Sinn, aber einen besseren Ansatz hatte ich nicht gefunden.
Wie bist Du denn auf die Verwendung von FILE gestoßen? Und wie davon auf Deinen Code gekommen?
Wenn ich nach file im Zusammenhang mit C suche, komme ich sofort auf Beispiele, die zeigen, wie es geht.
Leider alles nicht sonderlich hilfreich für die Zukunft wäre es vlt. sinnvoll sich die Frage genau durchzulesen, aber egal...
Finde im Internet was meien gestellte Frage beantwortet zur Zeit nichts und wenn ihr schon alle die tollen Lösungen im Internet findet könnt ihr sie ja gerne hier reinschreiben. Denn die Lösungsvorschläge die bislang hier stehen sind leider nicht sonderlich sinnvoll, außer ich übersehe was, aber bevor ihr hier weiter nutzlose Ansätze postet schließt lieber einfach das Thema, danke oder auch nicht.
Finde im Internet was meien gestellte Frage beantwortet zur Zeit nichts und wenn ihr schon alle die tollen Lösungen im Internet findet könnt ihr sie ja gerne hier reinschreiben. Denn die Lösungsvorschläge die bislang hier stehen sind leider nicht sonderlich sinnvoll, außer ich übersehe was, aber bevor ihr hier weiter nutzlose Ansätze postet schließt lieber einfach das Thema, danke oder auch nicht.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 7.503
Frage vorweg: Muss es C sein? Gerade Skriptsprachen liefern für solche Aufgaben einen wesentlich einfacheren Zugang.Tarores schrieb:Hallo,
ich suche zur Zeit in C eine Möglichkeit, wie ich eine Textdatei übergeben kann um sie dann im weiteren Verlauf zu bearbeiten.
Das der Aufruf über Konsole am Ende so aussieht ./main test.txt
Für jede Hilfe wäre ich dankbar.
Aber nun zu Deiner Frage:
Ich greif mal der einfachheithalber (weil im Internet verfügbar) auf das Buch C von A-Z zurück.
Dort findest Du einen Abschnitt zu Kommandozeilenargumente:
http://openbook.rheinwerk-verlag.de...te_001.htm#mjf6a9e42fa3bc25b2b1e06270e7bf8f68
als auch über Datei Ein-/Ausgabe:
http://openbook.rheinwerk-verlag.de...en_001.htm#mj136f9ac6b5b7c440aafe5010411ef011
Noch Fragen?
Gruß
Andy
Drexel
Lt. Commander
- Registriert
- Jan. 2012
- Beiträge
- 1.737
Die Antwort, dass es so wie Du es Dir vorstellst nicht geht, wurde bereits mehrfach gegeben. Wenn Du es nicht einsehen willst und denkst, dass wenn es Dein Wille ist es auch so funktionieren musst, ist das Dein Problem. Dann wirst Du aber leider auch nicht programmieren lernen.
PEASANT KING
Commander
- Registriert
- Okt. 2008
- Beiträge
- 2.412
Ich versteh einfach garnicht wo das Problem sein soll, das ist auch kein C spezifisches Problem sondern ein allgemeines Verständnisproblem was übergabeparameter betrifft. argv[x]m ist ein Array wobei das X die Anzahl der Argumente darstellt und gleichzeitig die Größe des zu übergebenden Arrays, bzw. um welches Argument es sich handelt.
Wieso liest du die Datei nicht einfach in einer gesonderten Methode(Funktion) ein und verarbeitest sie dann weiter in deiner Main() ?
Wieso liest du die Datei nicht einfach in einer gesonderten Methode(Funktion) ein und verarbeitest sie dann weiter in deiner Main() ?
Zuletzt bearbeitet:
daemon777
Lt. Commander
- Registriert
- Dez. 2003
- Beiträge
- 1.371
@Nilson:
Da du dann in den Speicherbereich eines fremden Prozesses schreiben müsstest bräuchtest du Prozessnamen und dort die Adresse des Handles. Übergeben würde man das aber logischerweise trotzdem als String. Alles Andere wäre ja auch grober Unfug.
@DJ_We$t:
Der TE hat sich nicht damit auseinander gesetzt, wie man eine Datei öffnet, sonst hätte er das Problem bereits gelöst. Stattdessen verlangt (das war keine Bitte sondern eine Forderung) er, dass wir ihm hier eine fertige Lösung präsentieren. Damit antwortet er aber auch nicht mal auf Rückfragen. Im Moment weiß einfacher keiner, wo denn eigentlich das Problem liegt (außer, dass er kein C Tutorial über Datei-Handling lesen möchte).
Im Code versucht er nur einen String einem File-Handle zuzuweisen. Dass das so nicht geht hätte jedes x-beliebige Tutorial aufgezeigt. Dass es hier eine Funktion für das Öffnen gibt ist wirklich nicht schwer rauszufinden.
Googlesuche "C File" ergibt direkt zB diesen Treffer: http://www.tutorialspoint.com/cprogramming/c_file_io.htm
Da du dann in den Speicherbereich eines fremden Prozesses schreiben müsstest bräuchtest du Prozessnamen und dort die Adresse des Handles. Übergeben würde man das aber logischerweise trotzdem als String. Alles Andere wäre ja auch grober Unfug.
@DJ_We$t:
Der TE hat sich nicht damit auseinander gesetzt, wie man eine Datei öffnet, sonst hätte er das Problem bereits gelöst. Stattdessen verlangt (das war keine Bitte sondern eine Forderung) er, dass wir ihm hier eine fertige Lösung präsentieren. Damit antwortet er aber auch nicht mal auf Rückfragen. Im Moment weiß einfacher keiner, wo denn eigentlich das Problem liegt (außer, dass er kein C Tutorial über Datei-Handling lesen möchte).
Im Code versucht er nur einen String einem File-Handle zuzuweisen. Dass das so nicht geht hätte jedes x-beliebige Tutorial aufgezeigt. Dass es hier eine Funktion für das Öffnen gibt ist wirklich nicht schwer rauszufinden.
Googlesuche "C File" ergibt direkt zB diesen Treffer: http://www.tutorialspoint.com/cprogramming/c_file_io.htm
Um einfach mal den zweiten Treffer zu "c text datei auslesen" zu verlinken:
https://de.wikibooks.org/wiki/C-Programmierung:_Dateien.
Und damit dein nächstes Hilfeersuchen etwas erfolgreicher ausfällt empfehle ich noch folgenden link:http://stackoverflow.com/help/mcve
https://de.wikibooks.org/wiki/C-Programmierung:_Dateien.
Und damit dein nächstes Hilfeersuchen etwas erfolgreicher ausfällt empfehle ich noch folgenden link:http://stackoverflow.com/help/mcve