Newbee - strncat und Speicher
-
Hallo,
ich versuche gerade eine CSV-Datei zu schreiben folgender Aufbau:
"eins";"zwei";"drei"
"vier";"fuenf";"sechs"Das klappt. Nur wenn ein "-Zeichen in meinen Daten vorkommt, dann zerlegt es mir mein CSV. Also habe ich versucht eine Funktion zu schreiben, die meine Daten Escaped.
#include <iostream> using namespace std; static void clearup(char *txt) { cout << "Gegeben: " << txt << endl; char *back = ""; char *ptr; ptr = strtok(txt,"\""); while (ptr != NULL) { cout << "Teil: " << ptr << " - Platz: " << strlen(ptr) << endl; strncat(back, ptr, strlen(ptr)); strncat(back, "\\\"", 2); ptr = strtok(NULL,"\""); } txt = back; } int main (int argc, char *argv[]) { char string[] = "Hier steht was in \"Anfuehrungszeichen\" und ein andere \"Text\" hat das auch."; cout << "Alter String: " << string << endl; clearup(string); cout << "Neuer String: " << string << endl; // Programm Ende cout << "ENDE" << endl; return EXIT_SUCCESS; }Laut sämtlichen Tutorials die ich gefunden habe sollte das ganze gehen. Nur leider bekomme ich immer ein "Segmentation fault" was ja nach Adam Riese (und google) eine Speicherschutzveretzung ist.
Ich bin anscheinend zu doof für, das zu Lösen. Wie kann ich meine Blindheit besiegen?
Danke,
Stefan
-
Was willste nun nehmen?
C
C++
C++/CLI
-
Eigentlich C++, nur die API von MySQL ist ja C. Ich bekomme sozusagen ursprünglich einen MYSQL_ROW zurück was laut mysql.h ein char** ist. Deswegen wollte ich da über char* machen.
//..CODE #include "mysql/mysql.h" //..CODE MYSQL_RES *res; MYSQL_ROW row; //..CODE j = 0; while ((row = mysql_fetch_row(res)) != NULL) { j++; // Nummer der Zeile mitschreiben cout << '"' << j << '"' << ";"; for (i = 0; i < mysql_num_fields(res); i++) { // Hier convertieren, dass "-Zeichen in \"-Zeichen umgewandelt werden. cout << '"' << row[i] << '"' << ";"; } cout << endl; } //..CODE
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Sorry für das Posting ins falsche Forum. Hab mich nach dem Login wohl vermausklickt....