WinFuture-Forum.de: C Programm - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C Programm ASCII-String --> Float


#1 Mitglied ist offline   Brave 

  • Gruppe: aktive Mitglieder
  • Beiträge: 19
  • Beigetreten: 26. Mai 04
  • Reputation: 0

geschrieben 27. Mai 2004 - 12:42

Jooo, das Programm soll wenns fertig ist folgendes können (Schulaufgabe... gnaa):

Eine als ASCII String eingegebene Zahl soll in das Format float verwandelt werden.
An der ersten Stelle soll ein + oder - stehn.

Beispiel: +27.685 -0.010654 -19200.0

Eine Standardfunktion namens "atof" soll ned verwendet werden - für mich kein problem da ich die eh ned kenne *G*

...bin momentan zu sehr mit anderen hausarbeiten beschäftigt, daher mal die Bitte um Anregungen, die ich dann ggf. umsetzen kann :D)

Danke im Voraus =)
0

Anzeige



#2 Mitglied ist offline   I3lack0ut 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.047
  • Beigetreten: 14. Oktober 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 27. Mai 2004 - 12:51

so würde ich es machen :D

a = StrToFloat("AnsiString");
if(a>0)
{
printf("+%f",a);
}

edit: kannst du mal genauer beschreiben was das für ein programm werden soll?

Dieser Beitrag wurde von I3lack0ut bearbeitet: 27. Mai 2004 - 12:55

Never run a changing system.
Micro Game Reviews (Mein Blog)
0

#3 Mitglied ist offline   Brave 

  • Gruppe: aktive Mitglieder
  • Beiträge: 19
  • Beigetreten: 26. Mai 04
  • Reputation: 0

geschrieben 27. Mai 2004 - 13:21

es soll "zu fuß", also ohne diverse vorgefertigte funktionen, eine in einem ASCII-String eingegebene Zahl (z.B. +1.374) in eine float Zahl "umwandeln".

einfach nur ne Eingabe, wo diese Zahl in den ASCII-String eingegeben wird, dann im Idealfalle nen Aufruf einer selbstgeschriebenen Funktion, in der mit pointern auf den ASCII String und auf die ausgabe-float-zahl zugegriffen wird und wo halt die im ASCII String eingegebene Zahl in die float variable übertragen wird.
dann einfach ne Ausgabe der Float Zahl, wieder im main (hauptprogramm).
0

#4 Mitglied ist offline   I3lack0ut 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.047
  • Beigetreten: 14. Oktober 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 27. Mai 2004 - 13:44

also wie sowas "zu fuß" geht weiss ich auch nicht, wieso sollte man sich auch damit herumschlagen wenn sich jemand anderes schonmal die arbeit gemacht hat.

ps: mit ner memberfunktion könnte es auch gehen
Never run a changing system.
Micro Game Reviews (Mein Blog)
0

#5 Mitglied ist offline   Brave 

  • Gruppe: aktive Mitglieder
  • Beiträge: 19
  • Beigetreten: 26. Mai 04
  • Reputation: 0

geschrieben 27. Mai 2004 - 18:38

warum ich das zu fuss tun sollte? weil meine Note davon abhängt ;))

Memberfunktion? hmmm bin newb was das ganze angeht daher frag ich hier ja nach :)
0

#6 Mitglied ist offline   Franz1299 

  • Gruppe: aktive Mitglieder
  • Beiträge: 547
  • Beigetreten: 27. Juni 03
  • Reputation: 0

geschrieben 28. Mai 2004 - 13:01

hab ich ma gemacht:
#include <iostream>
#include <stdlib.h>
#include <math.h>

using namespace std;

double convert(char* a)
{
    double r = 0;
    int i = 1;
    int j = -1;
    int stellen = 0;
    
    while(*(a+i)!=46)
    {
        i++;
        stellen++;
    }
    
    i = 1;
    
    while(stellen!=0)
    {
        r = r + (*(a+i)-48) * pow((double)10, (double)stellen-1);
        i++;
        stellen--;
    }
    
    i++;
    
    while(*(a+i)!=0)
    {
        r = r + (*(a+i)-48) * pow((double)10, (double)j);
        j--;
        i++;
    }
    
    if(*a=='-')
    {r=r*-1;}
    
    return r;
    
}



int main(int argc, char *argv[])
{
    cout<<convert("-123.456");
    system("PAUSE");	
    return 0;
}


BTW: du solltest versuchen es zu verstehen, ich habs absichtlich net kommentiert ;-)
Du brauchst einen USB-Stick? Weißt aber nicht welchen? Dann schaue hier:

USB Stick Test 2014 - Stick-Tester.de

Oder eine externe Festplatte?

Externe Festplatte Test - der große Test zu externen Festplatten
0

#7 Mitglied ist offline   Brave 

  • Gruppe: aktive Mitglieder
  • Beiträge: 19
  • Beigetreten: 26. Mai 04
  • Reputation: 0

geschrieben 29. Mai 2004 - 01:15

#include <iostream>
#include <stdlib.h>

die beiden kenne ich schon mal ned, dafür ne tolle <stdio.h>, mehr kenn ich bisher ned und mehr wär wohl ein wenig auffällig hrhrr|

trotzdem schonmal nen fettes danke, werd mich morgen mal damit auseinander setzen =)

Dieser Beitrag wurde von Brave bearbeitet: 29. Mai 2004 - 01:17

0

#8 Mitglied ist offline   Franz1299 

  • Gruppe: aktive Mitglieder
  • Beiträge: 547
  • Beigetreten: 27. Juni 03
  • Reputation: 0

geschrieben 30. Mai 2004 - 17:34

#include <stdlib.h> kannste weglassen, wenn du das System("PAUSE") weglässt.
Wenn du #include <iostream> weglässt, dann musst du cout<< durch printf() ersetzen. <_<
Du brauchst einen USB-Stick? Weißt aber nicht welchen? Dann schaue hier:

USB Stick Test 2014 - Stick-Tester.de

Oder eine externe Festplatte?

Externe Festplatte Test - der große Test zu externen Festplatten
0

#9 Mitglied ist offline   Dimension 

  • Gruppe: aktive Mitglieder
  • Beiträge: 774
  • Beigetreten: 17. November 03
  • Reputation: 0

geschrieben 30. Mai 2004 - 17:38

Wenn du das Programm in C (ohne ++) haben musst, gibts ohnehin nur printf() <_<
0

#10 Mitglied ist offline   Franz1299 

  • Gruppe: aktive Mitglieder
  • Beiträge: 547
  • Beigetreten: 27. Juni 03
  • Reputation: 0

geschrieben 01. Juni 2004 - 17:11

achso, ja hab ich garnicht gesehen, dass du es in C brauchtest :unsure:
Du brauchst einen USB-Stick? Weißt aber nicht welchen? Dann schaue hier:

USB Stick Test 2014 - Stick-Tester.de

Oder eine externe Festplatte?

Externe Festplatte Test - der große Test zu externen Festplatten
0

#11 Mitglied ist offline   XDestroy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.909
  • Beigetreten: 08. August 02
  • Reputation: 0

geschrieben 05. Juni 2004 - 19:43

jo ansi c bruach er. system("PAUSE") benutzen immer nur lehrer die keinen plan haben hab ich das gefühl. system("") ist für alle dos-befehle da. aber warum PAUSE wenn es dafür auch c-befehle gibt -.-
visual braut selbständig sogar ein wartefuntkion ein. naja um zu deinem problem zu kommen: am besten du überlegst mal. die zahl wird als string eingelsen. du hast z.b. für die zahl 0 den zugestellten wert 48. jetz musste mal überlegen, wie du daraus jetzt die eigentliche zahl kriegst. schau mal oben den cpp-code an. der bietet schon einige anregungen. allerdings müst ihr math einbinden dürfen um mit pow () zu rechnen. pow würde sich aber auch ohne realisieren. basiert alles (also auch pot. rechnen) auf den grundbefehlen ;) naja überleg mal. cu
0

#12 Mitglied ist offline   Brave 

  • Gruppe: aktive Mitglieder
  • Beiträge: 19
  • Beigetreten: 26. Mai 04
  • Reputation: 0

geschrieben 06. Juni 2004 - 18:05

jo das grundgerüst samt algorythmus hab ich inzwischen fertig, bin nur noch ned dazu gekommen, das ganze in ne funktion einzubasteln und zu verpointern...
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0