Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problema esecuzione di un thread
Forum - C/C++ - problema esecuzione di un thread

Avatar
el cuba libre (Normal User)
Newbie


Messaggi: 20
Iscritto: 07/03/2011

Segnala al moderatore
Postato alle 18:17
Sabato, 03/12/2011
Ciao
premetto che è il mio primo programma con l'utilizzo di thread!XD
sto sviluppando un semplice programma che presa la stringa scambia l'ultima e la prima lettera a ogni pressione di tasto. per esempio la stringa pippo alla prima pressione di un tasto diventerà opipp poi popip successivamente ppopi e cosi via.
tutto questo mentre la stringa viene stampata a intervalli regolari. il problema è che appena pigio un tasto il programma interrompe la sua esecuzione.
Codice sorgente - presumibilmente C++

  1. #include "stdafx.h"
  2. #include <windows.h>
  3. #include <iostream>
  4. #include <stdlib.h>
  5. #include <time.h>
  6. #include <conio.h>
  7. #include <time.h>
  8. using namespace std;
  9. char stringa []="pippo";
  10. DWORD funz1 (LPDWORD lpdwParam)
  11. {
  12.  
  13.         for(int i(0); i<100;i++)
  14.         {
  15.                 Sleep(1000);
  16.                 cout<<stringa;
  17.         }
  18.         return 0;
  19. }
  20. int _tmain(int argc, _TCHAR* argv[])
  21. {
  22.         DWORD dwThreadId, dwThrdParam = 1;
  23.         int v(0);
  24.         int lunghezza=strlen(stringa);
  25.         HANDLE thread =  CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)  funz1, &dwThrdParam, 0, &dwThreadId);
  26.         int min=0;
  27.         char c,s;
  28.         srand(time(NULL));
  29.         while(true)
  30.         {
  31.                 if(kbhit())
  32.                 {
  33.                         getch();
  34.                         s=stringa[min];
  35.                         stringa[min]=stringa[lunghezza];
  36.                         stringa[lunghezza]=s;
  37.                         if(lunghezza==3)
  38.                                 lunghezza=4,min=0;
  39.                         else
  40.                                 min++,lunghezza--;
  41.                 }
  42.         }
  43.         return 0;
  44. }


qualcuno mi può aiutare?
grazie

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 19:56
Sabato, 03/12/2011
Questa deve essere

int lunghezza=strlen(stringa)-1;


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM