zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Kleines C Problem beim String einlesen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 27.11.2008, 16:38
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.810
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard Kleines C Problem beim String einlesen

Hi, ich will mir ein Programm schreiben, welches mir automatisch vhosts erstellt.
So folgendes hab ich bisher:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    
    
    
    FILE *stream;
    char docroot[90];
    char servername[20];
    char dateiname[90];
    printf("Pfad zum Document root: ");
    fgets(docroot, 90, stdin);
    printf("Servername: ");
    fgets(servername, 90, stdin);
    strcat(dateiname, "/etc/apache2/sites-available/");
    strcat(dateiname, servername);
    printf("%s\n",dateiname);
    
}
Das Problem ist folgendes wird mir ausgegeben:
Zitat:
Zitat von ./vhost
Pfad zum Document root: /var/www/test
Servername: test
�t���B��t��/etc/apache2/sites-available/test
Woher kommen diese Zeichen?
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 27.11.2008, 18:15
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.810
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard

könntest du mir dein programm noch erklären, sonst hilft mir das nichts
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 28.11.2008, 08:25
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.810
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard

Ein paar Sachen die ich gesehen habe, die glaube ich gar nicht funktionieren können:
Code:
scanf("%s", docRoot);
Dürfte eigentlich gar nich funktionieren, zumindest haben wir gelernt das wir die referenz übergeben müssem, da ja eigentlich nur der Speicherplatz vom stdin zugewiesen wird, oder?!

Warum machst du folgendes:
Code:
 // Speicher für einen maximal 90 Zeichen langen string allokieren(reservieren)
    docRoot = (char*)malloc(90 * sizeof(char));
Reicht es nicht eigentlich, das gleich beim initialiesieren anzugeben wie groß das Array sein soll?
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo
Mit Zitat antworten
  #4 (permalink)  
Alt 28.11.2008, 10:44
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ups - eben erst gesehen

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    
    
    
    FILE *stream;
    char docroot[90];
    char servername[20];
    char dateiname[90];
    printf("Pfad zum Document root: ");
    fgets(docroot, 90, stdin);
    printf("Servername: ");
    fgets(servername, 90, stdin);

    strcat(dateiname, "/etc/apache2/sites-available/");

    strcat(dateiname, servername);
    printf("%s\n",dateiname);
    
}
Die merkwürdigen Zeichen entstehen nicht einfach, die sind halt da. Du hängst
an dateiname etwas dran, dateiname ist aber nicht inititalisiert (hat keinen Wert, daher
steht da irgendwelcher Unsinn vom Stack drinnen).

Probiere mal:
Code:
    strcpy(dateiname, "/etc/apache2/sites-available/");
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #5 (permalink)  
Alt 28.11.2008, 18:57
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.810
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard

Ok danke, ich habs initialiesiert jetzt gehts.
Folgendes Problem was ich aber jetzt noch hab, wenn ich etwas in die datei schriebe, mit den Variablen, dann ist nach dem Wert der Variable imemr ein Umbruch. Kommt das von \0?
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo
Mit Zitat antworten
  #6 (permalink)  
Alt 28.11.2008, 22:41
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Ich nehme an, Du meinst mit Datei stdin ?

Du hast ja mit ENTER die Eingabe abgeschlossen, das wird mit übergeben.
0x0 ist Stringende, das hat mit CR oder LF nix zu tun.

Oder schreibe mal was Du genau meinst.

Sorry, konnte nicht eher antworten, den GANZEN Tag Besuch ...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #7 (permalink)  
Alt 29.11.2008, 12:52
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.810
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard

Naja ich schreibe den einen string in eine datei so:
Code:
    fprintf(stream,"<VirtualHost *:80>\n\t\tServerName %s  \n\t\tServerAdmin admin@localhost \n\t\tDocumentRoot \"%s\" \n\t\t<Directory \"%s\">\n\t\t\tOptions FollowSymLinks MultiViews Includes\n\t\t\t AllowOverride All \n\t\t\tOrder allow,deny \n\t\t\tAllow from all \n\t\t</Directory> \n</VirtualHost>", servername, docroot,docroot);
Un immer da wo dass %s steht, wird ein Umbruch erzeugt...
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kleines Problem beim Dropdown-Menü in .css-Datei NoName89 CSS 2 09.05.2010 20:46
Kleines Jquery Problem THePointer Javascript & Ajax 1 15.05.2008 05:41
Kleines Problem beim Layouting Lizzix CSS 9 23.03.2008 11:44
kleines problem bei Layout schaf CSS 2 21.05.2005 22:40
Kleines list Problem Cane CSS 3 28.01.2004 01:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:00 Uhr.