tutorials.de Buch-Aktion 02/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
20
ZUGRIFFE
1110
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    Hallo zusammen!
    Hier im Forum habe ich eine passende für mich Lösung meines Problems gefunden. Dieser Baispiel ist in Delphi geschrieben.Ich habe probiert, dass in C++ benutzen, aber ich bekomme keine richtige Resultate.Könnte jemand das mal schauen wo ist meiner Fehler?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    var
      i: Integer;
      b: String;
    begin
      i := 20;
      while i > 0 do
      begin
        if (i mod 2) <> 0 then b := b + '1'
        else b := b + '0';
        i := i div 2;
      end;
    end;
    und meine Versuchungen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
         char* str(b);
     
        while (j>0)  // j ist int
        {
         if (j=(j%2)!=0)
            b=b+'1';
         else
             b=b+'0';
         j=j/2;
        }
    Danke euch voraus!
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Das müsste es eigentlich sein:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    int i = 20;
    string b;
     
    while(i > 0)
    {
        if(i % 2 && i != 0)
            b += '1';
        else
            b += '0';
     
        i /= 2;
    }
    Der binäre Code wird übrigens umgedreht dargestellt.


    mfg
    umbrasaxum
     

  3. #3
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    Danke für die schnelle Rückantwort!
    Aber warum bekomme ich Fehler genau bei
    "string b;"?
    Deshalb habe ich char geschrieben Ich kann das nicht verstehen. Habt ihr Antwort?
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Da du keine Informationen über den von dir verwendeten Compiler gibst kann ich nur raten.
    Du musst die string.h einbinden. Oder die string ohne .h und dann nach den Includes using namespace std; einfügen.


    mfg
    umbrasaxum
     

  5. #5
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    Hallo! Ich schreibe wieder. Es gibt Problem bei C++ mit String ?!
    /Ich benutze Visual C++ für meinen Projekt./
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    
    // ioblink.cpp - Blinking LEDs sample
    #include "stdafx.h"
    #include "time.h"
    #include "iowkit.h"
    #include "string.h"
    ...................................................
    ..................................................
    int main(int argc, char* argv[]); 
    int main(int argc, char* argv[])
    {
    IOWKIT_HANDLE iows[IOWKIT_MAX_DEVICES];
        int i, j, fnum, relnum;
        ULONG bits;
        int numIows;
        IOWKIT_REPORT rep;
        WCHAR sn[9];
        BOOLEAN rc;
        DWORD pid;
        IOWKIT_HANDLE devHandle;
        string b;
     
       //eingefügt zum Lesen von argc und argv
        printf("argc ist %d\n", argc);
     
        if (argc>0)
        {
            for (i=0;i<=argc-1;i++)
            {
                printf("argv[%d] ist %s\n",i,argv[i]);
            }
        }
     
        if (argc==2) 
        {
                     fnum=atoi(argv[1]);
         printf ("Fehlernummer ist %d\n",fnum);
        }
             for (fnum=1;fnum<128;fnum++)
        { printf("i ist %d",i);
            if ((fnum % 2)!=0)
            { 
                                     printf("fehlernummer ist %d",fnum);
             printf("es gibt Rest=1,fehlernummer %d wird gesetzt\n",fnum);
              b='Hi';
                                      b+='1';
                                     }
            else
            {
               printf("Rest= 0, fehlernummer %d wird nicht gesetzt\n",fnum);
               b='Hi';
                                       b+='0';
            }
                fnum=fnum /2;
        printf("fehlernummer ist: %d\n", fnum);
        printf("b ist: %s\n", b);
        }
        printf("b ist gleich: %s\n", b);
        }
    Folgendes bekomme ich als Fehlermeldung:
    ioblink.cpp
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2065: 'string' : nichtdeklarierter Bezeichner
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'b'
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2065: 'b' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.

    Wenn ich printe meinen String was ich muss schreiben, ist %s richtig?!
     

  6. #6
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Du musst auch angeben welcher Version des VS du benutzt! Aber wie es aussieht benutz die VS 2003.

    NImm statt string b;
    std::string b;

    Dann sollte das Problem behoben sein.


    mfg
    umbrasaxum
     

  7. #7
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    Wieder nichts.Ich weiss nicht, ob es mit string überhaupt möglig ist.?
    Mein Programm ist Visual C++ 6.0
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2653: 'std' : Keine Klasse oder Namespace
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2065: 'string' : nichtdeklarierter Bezeichner
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'b'
    D:\SDK\Samples\Simple IO\C\ioblink.cpp(48) : error C2065: 'b' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.
     

  8. #8
    uhu01 uhu01 ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Ort
    AT-STMK
    Beiträge
    207
    Hy!

    Wenn du mit dem Namespace arbeiten möchtest, musst du soweit ich weis satt "string.h" einfach nur <string> includieren.

    mfg
    uhu01
     

  9. #9
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    Hallo! Danke euch für die Hilfe!
    Ich muss ein Programm für einen Kontroller überschreiben, deswegen habe ich ständig Fragen. Es geht um eine Fehlernummer (z.B. ab 1-128), die ich von char nach int ungewandelt habe. Aber die Funktionen für Schreiben auf einem Port dieses Geräts (Kontroller) sind so geschrieben, dass die Variablen DWORD Value(unsigned long) haben. Ich muss meine int-Fehlernummer nach (unsigned long) umwandeln?Ja? Ich habe keine genau solche Funktion gefunden. Weis jemand etwas darüber? wie kann ich das schaffen?
    Danke im Voraus!
     

  10. #10
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    und was sollte das "....,&bits" bedeuten, diese & vor der Variable?
     

  11. #11
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Eigentlich solltest du auch einfach ein int übergeben können, vielleicht musst du noch nach DWORD casten.

    & (Adressoperator) bedeutet das die Adresse einer Variable übergeben wird, die Adresse wird dann einem Pointer zugewiesen.


    mfg
    umbrasaxum
     

  12. #12
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    Danke! ich weis nicht was habe ich gemacht aber jetzt kann nich meine exe starten. Kaeine Ahnung was habe ich gemacht. Es geht nicht sogar mit originale Datei (Programm)

    LINK : fatal error LNK1104: Datei "Release/ioblink.exe" kann nicht geoeffnet werden
     

  13. #13
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Geh mal auf "Projekt bereinigen" und dann "Alles neu erstellen", vielleicht hilfts.
    Und starte das Visual Studio mal neu.


    mfg
    umbrasaxum
     

  14. #14
    polj polj ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    14
    hilft nicht, aber danke!Ich habe etwas neues geletrnt
     

  15. #15
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Guck mal nach ob die ioblink.exe im Release Ordner deines Projekts liegt.


    mfg
    umbrasaxum
     

Ähnliche Themen

  1. Suche VBA Programmierer für Umwandlung VBS nach VBA
    Von Drohne im Forum Stellenangebote (unentgeltlich)
    Antworten: 3
    Letzter Beitrag: 24.09.10, 12:17
  2. Farbraum-Umwandlung von sRGB nach Lab
    Von Nasenbaer im Forum Java
    Antworten: 2
    Letzter Beitrag: 02.04.09, 13:37
  3. Umwandlung von string nach char
    Von sunmania im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 25.12.07, 14:23
  4. Problem bei der Umwandlung von RGB nach HexaDezimal
    Von rueD im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 07.11.07, 12:29
  5. Umwandlung von RGB Modus nach CMYK
    Von oaki im Forum Photoshop
    Antworten: 6
    Letzter Beitrag: 25.08.06, 12:38