Announcement

Collapse
No announcement yet.

C datei mit getchar() einlesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    versteh ich nicht ganz

    wenn ich jetzt bei:
    array[0]=0;
    array[1]=0;
    array[2]=0;
    usw... auf 0 setze dann wird das ueberlesen oder was ist der grund?

    Code:
     
    	//	if((c!=0x09)&&(c!=0x20))  { 
    			array[position] = c; 
    			if(array[position]=='\n')
    			{
    				printf("%s\n", array);
    //TODO schleife ueber die Laenge des arrays und auf 0 setzen.
    				for(i=0; i==position; i++)
    				{
    					array[i]=0;
    				}

    jep nicht meine lieblingsaufgabe...

    Comment


    • #17
      Ich weiß es nicht, es ist dein Programm. Ich wäre - wie oben - anders vorgegangen. Das Gewurschtel mit den Positionen hätte ich mir erspart. Zeile komplett lesen, entscheiden, ob LEER drin ist, ggf. in ein Array für die Anzeige übernehmen.

      Wenn du alles auf 0 setzt ist das Array leer
      Zuletzt editiert von Christian Marquardt; 08.03.2014, 20:01.
      Christian

      Comment


      • #18
        uebrigens
        ich habe jetzt mal den zeilenumbruch ueberprueft:
        Hex 0d0a kommt da raus...

        Comment


        • #19
          Ein Windows-Zeilenumbruch (2 Zeichen)
          Christian

          Comment


          • #20
            Hallo,

            Ich werde so vorgehen, dass ich eine ganze zeile einlese bis \n
            und dann mit eine schleife rückwerts gehe... wenn da dann ein Leerzeichen ist, dann soll dieses überschrieben!!!
            Ich frag mich nur wie ich das machen soll: z.B.: vorher 5665 \n nachher 5665\n
            mit welchem zeich kann ich das leerzeichen überschreiben 0 oder \n selbst?

            Comment


            • #21
              Mit meiner obigen Methode müsstest du nur auf \r prüfen (wenn \r dann continue) dann wird das Zeichen einfach überlesen und der folgende \n als Zeilenende gewertet....
              Das Leerzeichen kann nicht mit 0 überschrieben werden, da das das Stringende für C/C++ wäre
              Christian

              Comment


              • #22
                bei deiner methode kann man nicht die leerzeichen löschen, oda? deswegen habe ich es anders versucht.
                ich habe aufgabenstellung falsch verstanden. ich soll nicht die ganz zeile löschen, sondern überprüfen, ob am ende leerzeichen oder tabs sind und diese dann löschen...

                Comment


                • #23
                  Code:
                  #include <stdio.h>
                  //TODO ich soll kontrollieren, ob zwischen den normalen zeichen und lf ein tab oder space sich befinden, dann loeschen.
                  //TODO bis lf einlesen und dann wieder zurueckgehen bis normales zeichen kommt.
                  
                  int main() {
                  
                  	int c;
                  	char array[20];
                  	int position = 0;
                  	int i = 0;
                  
                  	while((c=getchar())) {
                  
                  //	if((c!=0x09)&&(c!=0x20))  {
                  		array[position] = c; 
                  		
                  		if(array[position] == '\r') //0x0a steht fuer Linefeed
                  		{
                  			for(i=position; (i==0x0a); i--) {
                  			printf("i%i\n",i);
                  			array[i]=0;
                  			}
                  			printf("%s\n", array);
                  		}
                  		position++;
                  /*	}
                    else {
                    printf("beer\n");
                    }
                   */ 
                  //TODO Array soll ausgegeben werden 
                  		
                  
                  		if(c==EOF)
                  		{
                  		return 2;
                  		}
                  		
                  	}
                  
                  	return 0;
                  }
                  //hex 0d0a

                  Comment


                  • #24
                    Wenn du da 0 einträgst, ist das das Stringende
                    Christian

                    Comment

                    Working...
                    X