Zum Inhalt springen

[C++]: FileStream (fputs)


Empfohlene Beiträge

Geschrieben

Hi Leute,

und schon hab ich wieder das nächste problem...

ich habe folgendes gemacht:

zunächst hab ich den inhalt einer datei zeilenweise in ein mehrd. char array namens datei geladen.

und nun gehe ich wie folgt vor:


for (i=0; i<rows; i++)
{
if (strstr(datei[i], "net use"))
{
datei[i][0] = '\0';
}
}
[/PHP]

ich durchsuche alle zeilen der datei nach dem vorkommen des substrings "net use". soweit funktioniert das ja auch. nun will ich aber diese Zeile ganz aus der datei löschen.

also hab ich mir gedacht, dass ich einfach an den Anfang des Zeilenstrings ein String-Ende Zeichen setzte.

allerdings sieht die ausgabe von

[PHP]
for (i=0; i<rows+2; i++)
fputs(datei[i], autoex);

dann in der entsprechenden Zeile so aus:


ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
[/PHP]

Wie kann ich die Zeile effektiv löschen? Und ja ich brauche das Array!

Geschrieben

komisch so wie du vorschlägst funzts:

-----------------------------------

strcpy(datei, "");

-----------------------------------

aber ist

-----------------------------------

datei[0] = '\0';

-----------------------------------

nicht normalerweise das gleiche!?

ich benutz den guten alten char-pointer, denn schließlich verlangt fputs den als parameter und nicht irgendeinen string.

Geschrieben
ich benutz den guten alten char-pointer, denn schließlich verlangt fputs den als parameter und nicht irgendeinen string.
Mal davon abgesehen, dass du einen std::string ganz einfach in einen Zeiger auf const char umwandeln kannst:

Warum benutzt du fputs? ;)

Geschrieben

warum denn nicht?

lass mich raten: das ist kein c++!? sondern ansi-C standard.

ich bin halt noch blutiger anfänger und jede korrektur ist willkommen.

was also hätte ich benutzen sollen?

Geschrieben

Hi,

der Ansi C Standard ist weitesgehend kompatibel zu ISO C++, also kannst du unter C++ so gut wie jede C Funktion benutzen. Manchmal macht das sogar Sinn, unter Performancegesichtspunkten.

Nur das Benutzen von Streams ist imho einfacher, gerade für Anfänger:

http://www.cppreference.com/cppio/constructors.html

Vector und String sind deshalb einfacher zu handeln, weil man sich nicht um Speicherreservierung und -freigabe kümmern muss. Gerade Anfänger stolpern oft über new und delete, und diese Dinge übernehmen vector und string automatisch.

Mit der Memberfunktion c_str() erhälst du einen const char*, den du überall dort verwenden kannst, wo keine strings akzeptiert werden.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...