Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » hilfe bei Primzahlen

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 <
000
31.10.2008, 13:56 Uhr
be



ich bin noch ein ziemlicher anfänger in sachen programmierung und winapi und habe mir desswegen eine aufgabe gestellt :ich wollte primzahlen berechnen (in einem windows programm) und diese mit einer listbox ausgeben . Allerdings werden die primzalen mit einer int varriablen berechnet und eine listbox nur strings ausgibt (glaube ich berrichtigt mich wenn dies nicht so ist) desswegen werden die zahlen in dem ANSII code ausgegeben wie z.b. 65=A
wie könnte ich dieses problem lösen?
danke schon mal im vorraus...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.10.2008, 23:29 Uhr
Lensflare



wenn du ein int in ein string umwandeln willst:

C++:
#include <sstream>

    int i = 5;
    std::stringstream ss;
    ss << i;
    std::string s = ss.str();


--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.11.2008, 02:26 Uhr
~be
Gast



C++:
#include <windows.h>
#include <string.h>
#include "resource.h"

LPCSTR MainClassName = "Dialogfelder";

HINSTANCE hInst;

//Für Auswertung von Check- und Radiobuttons
BOOL bChecked1 = FALSE;
BOOL bChecked2 = FALSE;
BOOL bRadio1   = FALSE;
BOOL bRadio2   = FALSE;
BOOL bRadio3   = FALSE;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
   WNDCLASSEX wc;
   MSG wmsg;
   HWND hWnd;

   wc.cbSize                 = sizeof(WNDCLASSEX);
   wc.style          = 0;
   wc.lpfnWndProc         = WndProc;
   wc.cbClsExtra         = 0;
   wc.cbWndExtra         = 0;
   wc.hInstance         = hInstance;
   wc.hIcon                 = LoadIcon(GetModuleHandle(NULL),
                            MAKEINTRESOURCE(ID_ICON));
   wc.hCursor                 = LoadCursor(NULL, IDC_CROSS);
   wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
   wc.lpszMenuName  = MAKEINTRESOURCE(IDR_MENU);
   wc.lpszClassName = MainClassName;
   wc.hIconSm                 = (HICON)LoadImage(GetModuleHandle(NULL),
                                        MAKEINTRESOURCE(ID_ICON),
                                        IMAGE_ICON, 16, 16, 0);

   if(!RegisterClassEx(&wc))
      {
       MessageBox(NULL, "Windows Registrations Fehler", "Error!",
                  MB_ICONEXCLAMATION | MB_OK);
       return 0;
      }

    hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, MainClassName,
                          "Menü Beispiel",
                          WS_OVERLAPPEDWINDOW|WS_VISIBLE,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          400, 300,NULL,NULL,hInstance, NULL);

    hInst=hInstance;

    if(hWnd == NULL)
    {
       if(MessageBox(NULL, "Fehler beim Erstellen des Fensters!",
          "Error!",        MB_ICONEXCLAMATION | MB_OK) == IDOK);
          return 0;
    }

while(GetMessage(&wmsg,NULL,0,0))
   {
      TranslateMessage(&wmsg);
      DispatchMessage(&wmsg);
   }
   return wmsg.wParam;
}


LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg,
                          WPARAM wParam, LPARAM lParam )
{
   switch( uMsg )
   {
      case WM_COMMAND :
              switch( LOWORD( wParam ) )
              {
                 //Wurde Menüelement "Radio & Checkbox" gewählt
                 case ID_MENU_RADIO_CHECK  :
                        DialogBox( hInst,
                                   MAKEINTRESOURCE(IDR_FIND_PRIM),
                                   hWnd,
                                   (DLGPROC)CheckRadioProc );
                        break;
                 //Menüelement "Editfeld" wurde ausgewählt
                 case ID_EDITFELD:
                        DialogBox( hInst,
                                 MAKEINTRESOURCE(IDR_IS_IT_PRIM),
                                   hWnd,
                                   (DLGPROC)CheckEditProc );
                        break;
                 //Menüelement "Listbox" wurde ausgewählt

                 //Menüelement "?" wurde ausgewählt
                 case ID_HELP:
                        MessageBox(hWnd,"Hier können Sie einige "
                                        "Dialogfelder testen",
                                        "Hinweis", MB_OK);
                        break;
                 //Menüelement "Beenden" wurde betätigt
                 case ID_EXIT :
                        DestroyWindow( hWnd );
                        break;
              }
              break;

      case WM_DESTROY :
              PostQuitMessage(0);
              break;

      default :
            return( DefWindowProc( hWnd, uMsg, wParam, lParam ));
   }

   return( 0L );
}

// Nachrichtenverarbeitung für das Dialogfeld
// "Primzahlen finden"
LRESULT CALLBACK CheckRadioProc( HWND hDlg, UINT uMsg,
                              WPARAM wParam, LPARAM lParam )
{
   char ich[255];
   BOOL primzahl;
   BOOL btran2;
   char hi[255];
   int Search_To = 0;
   int halbPrim;
   switch( uMsg )
   {
      case WM_INITDIALOG :
         SetDlgItemInt ( hDlg, IDC_LIST, 12345, TRUE);

         break;



      //Check- und Radiobutton auswerten
      case WM_COMMAND :
            switch( LOWORD( wParam ) )
            {
               case IDC_FERTIG : //Fertig

                      GetDlgItemText(hDlg, IDC_NUMBER, ich, 255);
                      Search_To = atoi (ich);
                      halbPrim = Search_To /2 + 1 ;
                      primzahl = true;
                      for (int ierstes = 1 ; ierstes <= Search_To ; ierstes++)
                      {
                      primzahl = true;

                      for( int i=2 ;i <= ierstes / 2 +1; i++)
                      {
                         if (ierstes % i == 0)
                         {
                         primzahl = false;
                         }
                      }
                      if (primzahl == true )
                         {
                         //hier die umwandlung des types von ierstes in ich
                         SendDlgItemMessage(hDlg, IDC_LISTBOX, LB_ADDSTRING, 0, (LPARAM)ich);
                         }
                      }

                      break;

                case IDCANCEL :

                      EndDialog( hDlg, IDCANCEL );
                      break;

                      }
      default :
            return( FALSE );
   }
   return( TRUE );
}









Das ist bisher der quellencode (der teil der uns interresiert)
die resource und header sind richtig und alle komponenten funktionieren

mein problem ist wie gesagt immernoch dass wenn ich mit itoa eine int varriable in den string laden würde würde diese nicht als zahl sondern als zeichen (ANSII)ausgegeben
die hier verwendete listbox kann nur chararrays oder chars ausgeben
bitte helft mir
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.11.2008, 03:18 Uhr
Lensflare



Das müsste gehen:

C++:
#include <stdlib.h>

//...

if (primzahl == true )
{
    itoa(ierstes, ich, 10);
    SendDlgItemMessage(hDlg, IDC_LISTBOX, LB_ADDSTRING, 0, (LPARAM)ich);
}



Die 10 steht für die Basis (10er System)

http://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate3/DE/html/devwin32/itoa_xml.html
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 01.11.2008 um 03:24 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.11.2008, 14:03 Uhr
~be
Gast


jo thx jetzt gehts cool
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: