Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Leerzeichen und Zeichenketten

Hallo,
ich hoffe hier kann mir jemand helfen ich habe schon überall nach einer Lösung gesucht,bin bis jetzt leider noch nicht fündig geworden.
Mein Programm soll Listen von Hörspielen in eine Textdatei als HTML code schreiben, das Programm funktioniert einwandfrei ohne Leerzeichen, doch sobald ich bei der Eingabe Leerzeichen verwende,
"denkt" das Programm, es sei schon die nächste Zeichenkette.
Wie kann ich eine Eingabe nur mit Return bestätigen,oder gibt es eine andere Lösung dieses Problem zu beheben, das Leerzeichen mit eingelesen werden?.
Bedanke mich jetzt schon für Hilfe.
Hier der Quelltext:


#include <stdio.h>
#include <string.h>

int main ()
{
char verlag[15],folge[25],serie[20],dateiendung[]=".txt";
int weiter=1,i,naechste=1,zaehler=1;
FILE *fptr;

    printf("======================\n");
    printf("====Listenprogramm====\n");
    printf("======================\n");

    while(weiter==1)
    {
      printf("\n 0 Programmende?\n");
      printf(" 1 neue Serie?\n");
      scanf("%d",&i);
   
         if(i==1)
         {
         //* Erstellen der Textdatei mit dem Seriennamen*//
         printf("\nSerienname:\t");
         scanf(" %s",serie);
         strcat(serie,dateiendung);
         
         fptr=fopen(serie,"a");
         //'Verlag abfragen und in die Textdatei speichern*//
         printf("Verlag:\t");
         scanf(" %s",verlag);
         
         fprintf(fptr,"\nVerlag: %s\n\n",verlag);
         
                  //*Folgen eingeben und als HTML-Code abspeichern*//
                  while(naechste==1)
                  {
                  printf("\nFolge %i:\t",zaehler);
                  scanf("%s",folge);
                  fprintf(fptr,"<li>%s</li><br><br>\n",folge);
                 
                  printf("Weiter 1 | Stop 0 \n");
                       scanf("%i",&naechste);
                       
                       if(naechste==1)
                       {
                       naechste=1;
                       zaehler++;
                       }
                       else
                       naechste=0;
                 
                  }
         
         weiter=1;                                            
         }
         
         else
         {  
         printf("\n\nProgramende\n");
         weiter=0;
         }  
         fclose(fptr);
     }
//printf("%s",serie);
}


Antworten zu Leerzeichen und Zeichenketten:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo |

Hab mir zwar deinen Quellcode jetzt nicht genau angeschaut, aber vielleicht hilft es, wenn du die entsprechenden Leerzeichen in NonBreakingSpaces umwandelst. Nachteil ist, dass an diesen Stellen eben nachher kein Umbruch mehr erfolgt.

greez 8)
JoSsiF

Nein, so was hilft nichts,
es muss doch einen Trick geben,mit dem man in C
bei der scanf anweisung zb bei einer zeichenkette:

char folgen[20];
scanf("%s",folgen);

Leerzeichen mit eingeben kann also einfach einen Text wie "Hallo Welt" und mit Return das Abschlusszeichen setzt also '\0'.

MFG Dennis

Ahoy!
Ich kann zwar kein C, aber koennte das an den Spaces liegen??
scanf(" %s",serie);
       ^
       |
MFG
Gregor

"The solution is to use fgets (see note) to read input a line at a time into a buffer, then use the sscanf function to parse the contents of the buffer.  With this approach each input operation consumes (reads) an entire line of input, even if it had errors.  The next input operation starts fresh with the next line of input." (http://www.hccfl.edu/pollock/CPlus/PrintfRef.htm#scanf)
MFG
Gregor

Thx Gregor,
now it´s work,i only had to replace scanf("%s",eg);
with gehts(eg); here is the komplete source code, maybe someone has the same problem and it will help:

//*Programm zur erstellen von HTML Seiten für meine Homepage*//
//*Programm by Dennis Guenther*//

#include <stdio.h>
#include <string.h>

int main ()
{
char verlag[15],folge[30],serie[45],dateiendung[]=".html",buchstabe,datei[20],pro[]="%",i[1],p[0];
int weiter=1,naechste=1,zaehler;
FILE *fptr;

    printf("======================\n");
    printf("====Listenprogramm====\n");
    printf("======================\n");
   
    strcpy(p,pro);
   
    while(weiter==1)
    {
      printf("\n 0 Programmende?\n");
      printf(" 1 neue Serie?\n");
      gets(i);
      folge[0]=1;
      zaehler=1;
     
         if(i[0]=='1')
         {
         //* Serienname einlesen*//
         printf("\nSerienname:\t");
         gets (serie);
         //printf("%s",serie);
         //scanf("%s",serie);
         //* Buchstabe fuer Seitenlink einlesen und erstellen *//
         buchstabe=serie[0];
         
         //* Erstellen der Textdatei mit dem Seriennamen*//
         strcpy(datei,serie);    
         strcat(datei,dateiendung);
         
         fptr=fopen(datei,"a");
                           
         //* Verlag abfragen und in die Textdatei speichern*//
         printf("Verlag:\t");
         gets (verlag);        
                 
         fprintf(fptr,"<html>\n\n<head>\n");
         fprintf(fptr,"<meta http-equiv=\"Content-Language\" content=\"de\">\n");
         fprintf(fptr,"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">\n");
         fprintf(fptr,"<meta name=\"description\" content=\"Hier findet ihr alle Folgen die zu dieser Serien erschienen sind\">\n");
         fprintf(fptr,"<meta name=\"keywords\" content=\"%s,%s,Hoerspiele,Hörspiele,Hörbücher,Cover,Serien,Folgen,Sprecher\">\n",serie,verlag);
         fprintf(fptr,"<meta name=\"robots\" content=\"index\">\n");
         fprintf(fptr,"<meta name=\"robots\" content=\"nofollow\">\n");
         fprintf(fptr,"<base target=\"Inhalt\">\n");
         fprintf(fptr,"<title>%s - Die Serie und ihre Folgen</title>\n\n",serie);
         fprintf(fptr,"<style>\n");
         fprintf(fptr,"<!--\n");
         fprintf(fptr,"td.b {background-color:#FFF1C8}\n");
         fprintf(fptr,"div.c {font-family:Verdana;font-size:10pt;color:#000000;font-weight:bold}\n");
         fprintf(fptr,"-->\n");
         fprintf(fptr,"</style>\n");
         //* Frameumleitung *//
         //fprintf(fptr,"<script language=\"Javascript\" type=\"text/javascript\">\n");
         //fprintf(fptr,"<!--\n");
         //fprintf(fptr,"if(top.frames.length <= 0)\n");
         //fprintf(fptr,"top.location = \"../../index.html\";\n");
         //fprintf(fptr,"-->\n");
         //fprintf(fptr,"</script>\n");
         fprintf(fptr,"</head>\n\n");
         //* Beginn des Bodybereichs *//
         fprintf(fptr,"<body bgcolor=\"#000000\">\n\n");
         fprintf(fptr,"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" width=\"100%s\" height=\"100%s\" id=\"AutoNumber1\">\n\n",p,p);
         fprintf(fptr,"\t<tr>\n\t<td width=\"100%s\" height=\"50\" colspan=\"3\" align=\"center\" background=\"../../images/tapes.jpg\" valign=\"top\"><a name=\"top\">&nbsp;</a></td></tr>\n",p);
         fprintf(fptr,"\t<tr>\n\t<td width=\"4%s\" height=\"*\">&nbsp;</td>\n\t<td width=\"92%s\" height=\"*\" valign=\"top\" align=\"left\">\n\n",p,p);
         fprintf(fptr,"\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#FFFFFF\" width=\"100%s\" id=\"AutoNumber1\" height=\"1\">\n",p);
         fprintf(fptr,"\n\t<tr><td width=\"791\" height=\"20\" colspan=\"3\"><p>&nbsp;</td></tr>\n\n");
         fprintf(fptr,"\t<tr><td width=\"90\" height=\"1\"></td>\n\n");
         fprintf(fptr,"\t<td width=\"631\" height=\"1\">\n\n");
         fprintf(fptr,"\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" width=\"595\" id=\"AutoNumber2\" height=\"162\">\n");
         fprintf(fptr,"\t<tr>\n\t<td width=\"120\" height=\"20\" align=\"left\" valign=\"top\"><b><font color=\"#FFFFFF\"><a target=\"_self\" href=\"../folgen.html#%c\">\n",buchstabe);
         fprintf(fptr,"\t<img border=\"0\" src=\"../../images/back.gif\" width=\"50\" height=\"20\"></a></font></b></td>\n");
         fprintf(fptr,"\t<td width=\"342\" height=\"20\" align=\"center\"><font color=\"#FFFFFF\"><b>%s von %s</b></font></td>\n",serie,verlag);
         fprintf(fptr,"\t<td width=\"120\" height=\"20\" align=\"center\">&nbsp;</td></tr>\n");
         fprintf(fptr,"\t<tr>\n\t<td width=\"120\" height=\"17\" align=\"center\">\n\t</td>\n");
         fprintf(fptr,"\t<td width=\"342\" height=\"17\" align=\"left\"><br><br>\n");
         // * Ab hier kommt die Liste *//
         fprintf(fptr,"\t\t<ol style=\"list-style-type:1; font=bold; color:white;\">\n\n\n");
         
         
                  //*Folgen eingeben und als HTML-Code abspeichern*//
                  printf("\nAbbruch mit 0\n");
                  while(folge[0]!='0')
                  {
                  printf("\nFolge %i:\t",zaehler);
                  gets(folge);
                                                                     
                       if(folge[0]!='0')
                       {
                       fprintf(fptr,"\t\t<li>%s</li><br><br>\n",folge);
                       folge[0]=1;
                       zaehler++;
                       }
                       //if(folge[0]=='0')
                       else
                       folge[0]='0';
                 
                  }
         fprintf(fptr,"\n\n\n\t\t</ol><br><br>\n\n");
         // *Hier Liste zuende *//
         fprintf(fptr,"</td>\n<td width=\"120\" height=\"17\" align=\"center\">\n</td></tr>\n");
         fprintf(fptr,"<tr>\n<td width=\"120\" height=\"20\" align=\"left\">&nbsp;</td>\n");
         fprintf(fptr,"<td width=\"342\" height=\"20\" align=\"left\"><a target=\"_self\" href=\"#top\">\n");
         fprintf(fptr,"<img src=\"../../images/pageup.jpg\" border=\"0\" width=\"60\" height=\"20\"></a></td>\n<td width=\"120\" height=\"20\" align=\"center\">&nbsp;</td>\n");
         fprintf(fptr,"</tr></tr></table></td>\n");
         fprintf(fptr,"<td width=\"80\" height=\"1\">&nbsp;</td></tr>\n");
         fprintf(fptr,"<tr><td width=\"100%s\" height=\"19\" colspan=\"3\">&nbsp;</td>\n</tr></table>\n",p);
         fprintf(fptr,"</td><td width=\"4%p\" height=\"*\"></td></tr>\n",p);
         fprintf(fptr,"<tr><td width=\"100%s\" height=\"25\" colspan=\"3\" align=\"center\">&nbsp;</td></tr>\n",p);
         fprintf(fptr,"<tr><td width=\"100%s\" height=\"50\" colspan=\"3\" align=\"center\" background=\"../../images/tapesb.jpg\">&nbsp;</td></tr>\n",p);
         fprintf(fptr,"\n</table>\n\n");
         fprintf(fptr,"</body>\n\n");
         fprintf(fptr,"</html>\n\n");
         
         weiter=1;                                            
         }
         
         else
         {  
         printf("\n\nProgramende\n");
         weiter=0;
         return 0;
         }  
         fclose(fptr);
     }
}

Das Programm sieht irgendwie aus, als ob du eigentlich lieber PHP lernen willst =)

Lol ja auf den ersten Blick,
aber es gibts viele Zeilen die beim Kopieren irgendwelche andere Zeichen ergeben haben wie ° oder ähnliches.
Es gibt viele Zeilen in dem Progam die HTML.code in ne datei speichern desewegen erweckt es den Eindruck es sei eher php als c das stimt wohl lol.

Häh ? °


« brauche mal dringend hilfeDelphi6: *.res erstellen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

HTML
HTML steht für Hyper Text Markup Language, ist die Sprache, mit der Internetseiten kodiert werden. Es handelt sich dabei um ASCII Text, in den die HTML Befehle einge...