Hallo Leute!
Ich bin hier neu, und nicht nur hier, auch in C mehr oder weniger!
Brauche jedoch für ein privates Projekt eure Hilfe!
Das Problem ist folgendes:
Ich lese aus einer Textdatei Zahlen aus und gebe mir diese danach wieder aus, vereinfacht gesagt.
Diese Zahlen möchte ich jedoch immer miteinander vergleichen. Also immer eine, mit der vorherigen.
Und die erste eben mit 0. Und zusätzlich möchte ich diese Differenz mir auch ausgeben lassen.
Hier ist mein bisheriger Code für diesen Part des Projekts:
Alles anzeigen
Die Textdatei Ich.txt unter C:\\ beinhaltet beispielsweise
N001 G01 X1Y2Z3
N002 G01 X4Y5Z6
N003 G01 X7Y8Z9
...
Die Zahlen haben jedoch auch mögliche Kommastellen und es müssen nicht immer alle drei Achsen vorkommen.
Falls mal kein X Wert zum beispiel da ist, dann soll der neue X Wert einfach auf den letzten vorhandenen X wert gesetzt werden. (eben wie ein Koordinatensystem)
Nun ist die Ausgabe:
X1.000000
Y2.000000
Z3.000000
X4,000000
.....
Und ich möchte mir auch den Unterschied zwischen dem ersten und dem zweiten .... X,Y,Z ausgeben lassen!
Ich hoffe ihr haben etwas Zeit mir hiermit zu helfen, da ich mit einigen Tips zur Realisierung nichts anfangen konnte, da ich nicht wusste,
wie diese umsetzbar sind. Zum Beispiel wurde mir gesagt ich könne es mittels
einlesen der einzelnen Zahlen in Strings und anschließendes Vergleichen realisieren, dies funktionierte bei mir jedoch irgendwie nicht.
Hab schon ewig herumprobiert und auch wo anders gefragt, aber dort habe ich immer nur so aussagen bekommen, die man vielleicht etwas versteht, aber
als anfänger nie und nimmer umsetzen kann!
Also wenns geht irgend ein beispiel oder eben eingebaut in den code, wies geht, damit auch ein anfänger erkennt wies geht!
Ich danke im Voraus
Michael
Ich bin hier neu, und nicht nur hier, auch in C mehr oder weniger!
Brauche jedoch für ein privates Projekt eure Hilfe!
Das Problem ist folgendes:
Ich lese aus einer Textdatei Zahlen aus und gebe mir diese danach wieder aus, vereinfacht gesagt.
Diese Zahlen möchte ich jedoch immer miteinander vergleichen. Also immer eine, mit der vorherigen.
Und die erste eben mit 0. Und zusätzlich möchte ich diese Differenz mir auch ausgeben lassen.
Hier ist mein bisheriger Code für diesen Part des Projekts:
C-Quellcode
- #include <stdio.h>
- #include <ctype.h>
- #include <stdlib.h>
- #include <limits.h>
- #include <string.h>
- #define NUMLENMAX 10
- FILE* fp = NULL;
- float x=0,y=0,z=0;
- //int xx=0,yy=0,zz=0;
- char buf [NUMLENMAX+1]={0};
- float get_num()
- {
- float einlesen;
- fscanf(fp,"%f",&einlesen);
- return einlesen;
- }
- int main( int arg, char* argv[] )
- {
- int c=0;
- fp = fopen ("C:\\Ich.txt", "rb");
- if ( !fp )
- return 0;
- while ( c != EOF )
- {
- c = fgetc (fp);
- switch (c)
- {
- case 'X':
- x = get_num ();
- printf ( "\nX:%f\n", x );
- //xx = (int)x*80;
- //printf ( "\nX Schritte:%d\n", xx );
- getchar();
- break;
- case 'Y':
- y = get_num ();
- printf ( "\nY:%f\n", y );
- //yy = (int)y*80;
- //printf ( "\nY Schritte:%d\n", yy );
- getchar();
- break;
- case 'Z':
- z = get_num ();
- printf ( "\nZ:%f\n", z );
- //zz = (int)z*80;
- //printf ( "\nZ Schritte:%d\n", zz );
- getchar();
- break;
- }
- }
- fclose(fp);
- return 0;
- }
Die Textdatei Ich.txt unter C:\\ beinhaltet beispielsweise
N001 G01 X1Y2Z3
N002 G01 X4Y5Z6
N003 G01 X7Y8Z9
...
Die Zahlen haben jedoch auch mögliche Kommastellen und es müssen nicht immer alle drei Achsen vorkommen.
Falls mal kein X Wert zum beispiel da ist, dann soll der neue X Wert einfach auf den letzten vorhandenen X wert gesetzt werden. (eben wie ein Koordinatensystem)
Nun ist die Ausgabe:
X1.000000
Y2.000000
Z3.000000
X4,000000
.....
Und ich möchte mir auch den Unterschied zwischen dem ersten und dem zweiten .... X,Y,Z ausgeben lassen!
Ich hoffe ihr haben etwas Zeit mir hiermit zu helfen, da ich mit einigen Tips zur Realisierung nichts anfangen konnte, da ich nicht wusste,
wie diese umsetzbar sind. Zum Beispiel wurde mir gesagt ich könne es mittels
einlesen der einzelnen Zahlen in Strings und anschließendes Vergleichen realisieren, dies funktionierte bei mir jedoch irgendwie nicht.
Hab schon ewig herumprobiert und auch wo anders gefragt, aber dort habe ich immer nur so aussagen bekommen, die man vielleicht etwas versteht, aber
als anfänger nie und nimmer umsetzen kann!
Also wenns geht irgend ein beispiel oder eben eingebaut in den code, wies geht, damit auch ein anfänger erkennt wies geht!
Ich danke im Voraus
Michael