Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Kleines Anfängerproblem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
12.04.2010, 16:28 Uhr
~DonKomisch
Gast



C++:
// afsfg.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include <stdafx.h>
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    double name;
    
    
    
    cout << "Bitte geben Sie ihren Namen ein: ";
    cin >> name;
    cout << name << " ist kein gueltiger Benutzer!" << endl;
    getchar(); // Er spuckt nicht "name" ist kein..., sondern 012301430,33294 ist kein..
    

    Sleep(3000);
    return 0;
}


Dieser Post wurde am 12.04.2010 um 17:13 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.04.2010, 16:29 Uhr
~DonKomische
Gast



C++:
// afsfg.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include <stdafx.h>
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    double name;
    
    
    
    cout << "Bitte geben Sie ihren Namen ein: ";
    cin >> name;
    cout << name << " ist kein gueltiger Benutzer!" << endl;
    getchar(); // Er spuckt nicht "name" ist kein..., sondern 012301430,33294 ist kein..
    

    Sleep(3000);
    return 0;
}


Dieser Post wurde am 13.04.2010 um 21:23 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.04.2010, 16:57 Uhr
~f.-th.
Gast


Was erwartest du bei

C++:
double name;


?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.04.2010, 17:41 Uhr
~KOmisch
Gast



Zitat von ~f.-th.:
Was erwartest du bei

C++:
double name;


?

naja, das es eine variable ist
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.04.2010, 18:38 Uhr
0xdeadbeef
Gott
(Operator)


double ist ein Datentyp für Fließkommazahlen, nicht für Zeichenketten. Du willst

C++:
string name;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.04.2010, 01:48 Uhr
Hans
Library Walker
(Operator)


Ich weis nicht wieso, aber dazu fällt mir immer nur dieser "Blödsinn" ein:

C++:
#include <stdio.h>

union Wandel
{
  float f;
  char c[sizeof(float)];
} wd;


int main(void)
{
  float numbers[] = { 3.1464751689077453e+35, 4.2956875278372203e+24,
                      1.1289690715099218e+27, 4.6310489015987742e+27,
                      2.0192943120597566e-19, 6.5712656250000000e+05,
                      4.4381484949148942e+27, 1.0574474443064061e+21,
                      1.4774899768617578e-19, 1.9431903352836395e-19,
                      6.6815728330841849e+22, 2.6301215337890185e+20,
                      3.9441117217805355e+30, 7.1854026831171162e+22,
                      1.8959090387281827e+31, 2.9778190102371303e+35,
                      1.7749277697796982e+28, 1.3563157719409819e-19,
                      0.0 };
  int i, t = 0;

  while (wd.f = numbers[t++])
      for (i = 0; i <= sizeof(float)-1; i++)
          printf("%c", wd.c[i]);

  printf("\n");

  return 0;
}



Aber als Anfänger sollte man nicht versuchen, das zu verstehen. Das wird nämlich nix!

Hans


P.S. Kann mir aber auch gut vorstellen, dass das nicht jeder Lehrer versteht...
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 13.04.2010 um 02:02 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.04.2010, 02:14 Uhr
0xdeadbeef
Gott
(Operator)


Du bist ja wahnsinnig.

Und plattformunabhängig ist das nicht!
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.04.2010, 08:59 Uhr
~f.-th.
Gast


Gibt es da auch die C++ Fassung?

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.04.2010, 20:07 Uhr
0xdeadbeef
Gott
(Operator)


Naja, ich schätze, man könnte das etwa so machen:

C++:
#include <algorithm>
#include <cstddef>
#include <iostream>
#include <iterator>
#include <string>

union Wandel
{
  float f;
  char c[sizeof(float)];
} wd;

std::string stringify(float x) {
  Wandel w;

  w.f = x;
  return std::string(w.c, w.c + sizeof(float));
}

template<typename T, std::size_t N>
std::size_t array_size(T (&)[N]) { return N; }

int main(void)
{
  float numbers[] = { 3.1464751689077453e+35, 4.2956875278372203e+24,
                      1.1289690715099218e+27, 4.6310489015987742e+27,
                      2.0192943120597566e-19, 6.5712656250000000e+05,
                      4.4381484949148942e+27, 1.0574474443064061e+21,
                      1.4774899768617578e-19, 1.9431903352836395e-19,
                      6.6815728330841849e+22, 2.6301215337890185e+20,
                      3.9441117217805355e+30, 7.1854026831171162e+22,
                      1.8959090387281827e+31, 2.9778190102371303e+35,
                      1.7749277697796982e+28, 1.3563157719409819e-19 };

  std::transform(numbers,
                 numbers + array_size(numbers),
                 std::ostream_iterator<std::string>(std::cout, ""),
                 stringify);
  std::cout << std::endl;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
14.04.2010, 20:58 Uhr
Hans
Library Walker
(Operator)



Zitat von 0xdeadbeef:
Du bist ja wahnsinnig.

schon möglich...


Zitat von 0xdeadbeef:
Und plattformunabhängig ist das nicht!

In wie fern?

Ich dachte erst an das Endian-Problem, als Big-, bzw. Little-Endian. Hab aber leider keinen Rechner mit PowerPC-Prozessor oder ähnlichem, der mit Big-Endian arbeitet, um das ausprobieren zu können. Evtl. gibt es eine Compilerdirektive, die man abfragen könnte, um entsprechenden Code erzeugen zu lassen? - Aber ich kenne sie nicht.
Davon abgesehen gilt das Endianproblem soweit ich weis nur für ganzzahlige Typen, aber nicht für Fliesspunkt. Oder täusche ich mich da?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: