Oppure

Loading
03/12/11 17:17
el cuba libre
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.
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <time.h>
using namespace std;
char stringa []="pippo";
DWORD funz1 (LPDWORD lpdwParam)
{

	for(int i(0); i<100;i++)
	{
		Sleep(1000);
		cout<<stringa;
	}
	return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
	DWORD dwThreadId, dwThrdParam = 1; 
	int v(0);
	int lunghezza=strlen(stringa);
	HANDLE thread =  CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)  funz1, &dwThrdParam, 0, &dwThreadId);
	int min=0;
	char c,s;
	srand(time(NULL));
	while(true)
	{
		if(kbhit())
		{
			getch();
			s=stringa[min];
			stringa[min]=stringa[lunghezza];
			stringa[lunghezza]=s;
			if(lunghezza==3)
				lunghezza=4,min=0;
			else
				min++,lunghezza--;
		}
	}
	return 0;
}

qualcuno mi può aiutare?
grazie
aaa
03/12/11 18:56
nessuno
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à.