C++ Programm Array
-
Entweder geschlafen
ODERder Lehrer kanns selber nicht, koppiert alle Aufgaben aus dem Internet und schläft die ganze Lektion selber :p
-
Alex Smith schrieb:
Entweder geschlafen
ODERder Lehrer kanns selber nicht, koppiert alle Aufgaben aus dem Internet und schläft die ganze Lektion selber :p
Wie wäre es wenn du erstmal damit anfängst überhaupt etwas an Code zu schreiben, und dann mit diesem Code deine Probleme aufzeigst. Der Lehrer mag noch so schlecht sein, die Grundlagen solltest du oder andere in deiner Klasse dennoch kennen.
cu André
-
#include<fstream>
#include<iostream>
#include<vector>
#include<string>using namespace std;
int main(int argc, char *argv[])
{
char filename[128];
ifstream file;
char zeile[1024];// Dateinamen einlesen
cout << "Dateinamen eingeben: " << flush;
cin.getline(filename, 127);// Datei öffnen
file.open(filename, ios::in);if (file.good())
{
// Wenn die Datei geoeffnet werden konnte// An den Anfang der Datei springen
file.seekg(0L, ios::beg);while (! file.eof())
{
// Die Datei zeilenweise auslesen
file.getline(zeile, 1024);
cout << zeile << endl;
}
}
else
{
// Wenn die Datei nicht geoeffnet werden konnte
cout << "Datei nicht gefunden." << endl;
}
system ("pause");
return 0;
}// Alex Smith

soweit öffnet er das file das ist klar. jetzt muss ich das file nur noch in ein array tun. sobald es im array ist weiss ich wie man die zeichen ändert da habe ich schon mal was gemacht.
aber wie bringe ich es ins array ?danke und gruss Alex
-
Hey zusammen
Diese Aufgabe würde mich auch mal interessieren. Wir hatten vor einiger Zeit auch so eine ähnlich Aufgabe in der Schule. Irgendwie sind wir dann aber abgeschweift und haben die Aufgabe nicht gelöst.

-
Alex Smith schrieb:
soweit öffnet er das file das ist klar. jetzt muss ich das file nur noch in ein array tun. sobald es im array ist weiss ich wie man die zeichen ändert da habe ich schon mal was gemacht.
aber wie bringe ich es ins array ?Hast du doch schon - der Aufruf file.getline() hat den Dateiinhalt in dein Array geschrieben

-
#include <cstdio>
#include <iostream>
using namespace std;int main() {
char einZeichen;
int ersatzZaehler = 0;
char eingabe[20];
FILE *meinFile;printf("Geben Sie den Filenamen ein: ");
char name[60];
scanf("%s", &name);
meinFile = fopen(name, "r+"); /* mit dem "fopen"-Befehl öffnet man eine Datei.
Der zweite Wert in der Klammer steht für die Berechtigung.
Mit "r+" hat man Schreib- und Leserechte.*/
if (!meinFile) {
printf("Konnte %s nicht oeffnen!\n", name);
system("PAUSE");}
else {
char eingabe[1];
printf ("Welches Zeichen soll gesucht werden? ");
scanf("%s", &eingabe);
char suchZeichen = eingabe[0];printf("Welches Zeichen soll als Ersatz verwendet werden? ");
scanf("%s", &eingabe);
char ersatzZeichen = eingabe[0]; // Der Dateizeiger steht jetzt am Anfang.while ((einZeichen = fgetc(meinFile)) != EOF) //EOF = "End Of File". "fgetc" nimmt das erste Zeichen der Datei und speichert dieses in "einZeichen".
{
if (einZeichen == suchZeichen)
{
fpos_t position; // Deklaration von "position".
fgetpos(meinFile, &position); // Ermittelt den Zeiger und schreibt ihn in die Variable "position".
position--; // Da der Zeiger beim "fgetc"-Befehl nach dem speichern um eine Stelle verschoben wird, setzt ihn dieser Befehl wieder zurück.
fsetpos(meinFile, &position); // Speichert die aktuelle Position des Zeigers in die Variable "position".
fputc(ersatzZeichen, meinFile); // Ersetzt ein Zeichern in der Datei.
ersatzZaehler++; // Zählt die Anzahl der ersetzten Zeichen
position++; // Die Position verschiebt sich um eine Position nach vorne.
fsetpos(meinFile, &position); // Hier wird wieder die aktuelle Position des Zeigers in die Variable "position" gespeichert.
}
}
printf("\nEs sind %d Zeichen ersetzt worden.\n", ersatzZaehler);
system("PAUSE");
}
fclose(meinFile);
return 0;
}

das ist der code vom kollegen den ich erwähnt habe
stimmt eigentlich soweit nur ist es halt kein array.
-
Ja, so kann man es auch machen - da verwendest du nur kein Array

Der grundsätzliche Ablauf wäre so:
if(file.good()) { file.getline(array,1024); int len=file.gcount();//wieviele Zeichen habe ich wirklich eingelesen? //arbeite mit deinem Array file.seekp(0); file.write(array,len); }PS: Tu und einen Gefallen und lies dir mal das durch - sfds
-
CStoll schrieb:
PS: Tu und einen Gefallen und lies dir mal das durch - <a target='_blank' href='viewtopic.php?t=39411'>So funktioniert das Syntaxcoloring:</a>
du könntest es ausbessern
:xmas1:
-
Und der Code deines Kollegen ist kein C++ sondern pures C (auch wenn <iostream> eingebunden ist).
Und bei deiner Version hast du doch ein Array: char zeile[1024]
-
if (!meinFile) { printf("Konnte %s nicht oeffnen!\n", name); system("PAUSE");
-
queer_boy schrieb:
du könntest es ausbessern
:xmas1:Ja, ich könnte - wenn ich denn wollte.
-
Ich habe ein txt file.
Das File lese ich in ein Array ein.
Anschliessed gebe ich an welches Zeichen durch welches ersetzt werden muss.
Hat irgendjemand ein Beispielcode.
Es kann doch nicht sein dass es keinen anderen Fall gab ?Gruss
-
Mein Gott ich werde ja immer besser.
ich glaube ich bin der geborene programmierer.ok das vieleicht nicht ganz...
der letzte teil des programms habe ich auch.

#include <stdio.h> int main(void) { char oldname[80], newname[80]; printf("Umzubenennende Datei : "); gets(oldname); printf("Neuer Name : "); gets(newname); if ( rename(oldname, newname) == 0 ) printf("%s wurde umbenannt in %s\n", oldname, newname); else perror("rename"); return 0; }

ich brauche nur noch hilfe wie ich das txt file in ein array tue mit maximal 255 zeichen und dass dann die zeichen ersetzt werden..
irgendjemand

vielen vielen dank
gruss alex
-
vielleicht solltest du wenigstens die Antworten in deinem eigenen Thread lesen, wenn du schon zu faul bist, im Unterricht aufzupassen. Die Daten kannst du mit getline(), get() oder read() in dein Array einlesen - und mit write() wieder in die Datei zurückschreiben.
-
Hallo zusammen
Merkst du nicht dass er nciht weiss wie man es macht. er könnte vieleicht mal unterstützung brauchen statt einen zusammenschiss weil er nicht aufpasst.
ich kanns auch nicht
Frohe Weihnachten :xmas1:
Harry
-
Harald84 schrieb:
er könnte vieleicht mal unterstützung brauchen statt einen zusammenschiss weil er nicht aufpasst.
Ich hab' schon mehrere Hinweise dazu gebracht (sogar hier in diesem Thread) - aber ich habe keine Lust, mich ständig zu wiederholen. Darum verweise ich gelegentlich etwas weiter nach oben im Thread.
(und wir wollen nebenbei die Leute auch dazu erziehen, mitzudenken anstatt fertige Lösungen von irgendwo abzuschreiben ;))