Zeilentrenner und Tabulatorzeichen anders darstellen



  • Servus
    indem du Bsp.

    printf("\\t \\n");
    

    machst dan kriegst du \t und \n ausgegeben!



  • for(x = 0; x <= (SIZE-1); x++)
      {
        printf("\\t \\n", Ergebnis[x]); 
      }
    

    Wenn ich das so nutze, bekomme ich nicht die gewünschten Zeichen in der Zeichenkette angezeigt.
    Ich bekomme sogar gar keine Ausgabe !



  • Ouuu man!

    für \\t bekommst du \t ausgegeben
    und für \\n \n!!!!



  • hohesC schrieb:

    Ouuu man!

    für \\t bekommst du \t ausgegeben
    und für \\n \n!!!!

    Ne bekomme ich nicht..... des hab ich auch schon erst gedacht, aber es gibt keine Ausgabe.... das Programm endet nach dem Einlesen der Daten. 😕



  • Soll das prog. so laufen wie des hier???

    #include <stdio.h> 
    
    #define SIZE 20 
    
    int main(int argc, char* argv[]) 
    { 
      int x,y; 
      char eingabe1[SIZE], Ergebnis[SIZE]; 
    
      for(x = 0; x <= (SIZE-1); x++) 
        for(y = 0; y <= (SIZE-1); y++) 
      { 
        eingabe1[x]=' '; 
        Ergebnis[x]=' '; 
      } 
      printf("Eingabe 1:\n"); 
    
      fgets(eingabe1,SIZE,stdin); 
    
      for(x = 0; x <= (SIZE-1); x++) 
      {
        Ergebnis[x] = eingabe1[x];
      } 
      printf("Das Ergebnis ist:\n"); 
      for(x = 0; x <= (SIZE-1); x++) 
      { 
        if(Ergebnis[x]=='\t')
        {
          printf("\\t");
        }
        else if(Ergebnis[x]=='\n')
        {
          printf("\\n");
        }
        else
        {
          printf("%c", Ergebnis[x]);
        }
      }
      return 0; 
    }
    


  • Jap ganz genau.....

    Man muss noch diese Anweisungen in eine Funktion packen und dann sollte es im Prinzip gehen.



  • Na dann mach das mal!



  • So habs umgebaut:

    #include <stdio.h> 
    
    #define SIZE 100
    
    char UMBAU(char s[]); 
    
    int main(int argc, char* argv[]) 
    { 
      int x,y; 
      char eingabe1[SIZE], Ergebnis[SIZE]; 
    
      for(x = 0; x <= (SIZE-1); x++) 
        for(y = 0; y <= (SIZE-1); y++) 
      { 
        eingabe1[x]=' '; 
        Ergebnis[x]=' '; 
      } 
      printf("Eingabe 1:\n"); 
    
      fgets(eingabe1,SIZE,stdin);
    
      for(x = 0; x <= (SIZE-1); x++) 
      { 
        Ergebnis[x] = eingabe1[x]; 
      } 
      UMBAU(eingabe1); 
      }
    
      char UMBAU(char Ergebnis[])
      {
      int x;
    
      for(x = 0; x <= (SIZE-1); x++)
      {
        if(Ergebnis[x]=='\t')
        {
          printf("\\t");
        }
        else if(Ergebnis[x]=='\n')
        {
          printf("\\n");
        }
        else
        {
          printf("%c", Ergebnis[x]);
        }
      }
      return 0;
    }
    

    Damit geht es schon mal auf jeden Fall ! 👍



  • Nimm den code!!!

    #include <stdio.h> 
    
    #define SIZE 20 
    
    char unescape(char s);
    
    int main()
    { 
      int x; 
      char eingabe1[SIZE]; 
    
      for(x = 0; x <= (SIZE-1); x++) 
      { 
        eingabe1[x]=' '; 
      } 
      printf("Eingabe 1:\n"); 
    
      fgets(eingabe1,SIZE,stdin); 
    
      printf("Das Ergebnis ist:\n"); 
      for(x = 0; x <= (SIZE-1); x++) 
      { 
         unescape(eingabe1[x]);
      }
      return 0; 
    } 
    
    char unescape(char s)
    {
      if(s=='\t')
      {
        printf("\\t");       
      }
      else if(s=='\n')
      {
        printf("\\n");
      }
      else
      {
        printf("%c",s);
      }
      return(0);
    }
    


  • @ hohesC:
    So hab jetzt auch mal deine andere Version getestet. Diese ist etwas straffer und sieht wieder übersichtlicher aus ! 👍


Anmelden zum Antworten