Feldinhalt auf Variable uebergeben ?



  • Ist es moeglich den Feldinhalt von Feld "buf" auf eine Variable zuzuweissen.

    Wie heissen die Befehle.

    #include <stdio.h>
    int main {
    char buf[20];
    double x;
    ..
    ..
    ..

    durch weiter Befehle steht dann in buf = "123.223300"
    ich brauche den hinhalt aber auf x.



  • Wieso benutzt du Char, wenn du Double-Werte haben willst?! Char steht für Zeichen. Willst du von char nach double konvertieren?

    buf ist ein Array, d. h. es gibt nicht "den" Inhalt, sondern eben mehrere. Wenn du z. B. einer Variablen einen Wert aus buf zuweisen willst, mach das so:

    var1 = test[4711];
    

    Dann steht in var1 der Wert von test[4711].

    durch weiter Befehle steht dann in buf = "123.223300"

    Check ich net. Ich finde du drückst dich immer sehr umständlich aus...



  • Den gezeigten char-String möchte er denke ich nach double umwandeln. Ich weiß nicht wie das mit der Umwandlung aussieht, aber kann man das nicht von char nach double casten oder so? Für manche eingaben braucht man schließlich string, die man später in eine Zahl umwandeln muss.

    Code-Hacker



  • Las das "char" mal in Ruhe. Es ist wichtig und ich brauche es so.
    Du hast recht, ich brauche den Inhalt des Feldes von "buf"

    In buf[0] steht 1
    in buf[1] steht 8
    usw.

    so das wenn du

    char buf[20];
    printf("buf : = %s",buf);

    schreibst, da kommt

    buf : = 187.9600000

    Ich hoffe du hast mich jetzt verstanden.

    Was ich aber brauche ist

    das ich
    double x;
    printf("x : = %lf",&x)

    x : = 187.9600000

    KLAR ???

    Also wie mache ich "buf" zu "x"



  • Wenn dir ein Float reicht.

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <stdlib.h>
    
    void main (void)
    {
     clrscr();
     char buf[20]="20.000";
     float x;
     x=atof(buf);
     printf("%f",x);
     getch();
    }
    

    Mfg

    Marek Swierzy

    Mfg Marek Swierzy



  • sscanf



  • Hallo Chris233

    Für dein Projekt um aus den aus dem File gelesenen Koordinaten Doubles zu machen bietet sich entweder atof oder

    Convert strings to a double-precision value.
    double strtod( const char *nptr, char **endptr );
    
    Convert strings to double (atof), integer (atoi, _atoi64), or long (atol).
    double atof( const char *string );
    

    oder

    Read formatted data from a string.
    int sscanf( const char *buffer, const char *format [, argument ] ... );
    

    In speziellen Fall bietet glaube ich strod die beste Lösung



  • #include <stdio.h>
    #include <stdlib.h>
    int main()
    {

    char layer_name;

    char buf[20];

    ...
    ...
    ...
    weiter Programmcode. der aber hier nicht wichtig ist.

    ...
    ...
    ...

    hier sollte im --> buf = "TOP" drin stehen, was es auch mit hilfe des Debugger auch so ist

    fscanf(datei_ptr,"%s",buf);
    sscanf(buf,"%s",&layer_name);
    printf("Layer: %c ",&layer_name);

    warum ist jetzt nur in layer_name ="T" drin ???


Anmelden zum Antworten