hallo allemaal,
ik zit met een probleempje wat heel simpel lijkt maar wat ik maar niet opgelost krijg. Ik wil dat mijn programma aan de gebruiken een string vraagt en dat het programma controleert hoe groot die is. Dus als de user meer chars invoert dan de bedoeling is moet mijn programma een bericht hierover geven. Ik heb hiervoor de volgende functie geschreven:
Het probleem is echter dat ik als output krijg dat eerste call (ik doe er 2 achter elkaar) meteen skipt. hij denkt dat ik op enter druk zonder iets in tegeven. Ik denk dat dit komt omdat er een menutje voor zit waarbij je op enter moet drukken en hij de enter als het ware 'meeneemt' dat hij dus te snel is voor de user als het ware. weet iemand hoe ik dit moet oplossen? Heb het volgende al geprobeerd:
- clear van input
- cin.ignore()
- wachten totdat enter wordt losgelaten
helaas werkt dit allemaal niet, heeft iemand ideeën?
ik zit met een probleempje wat heel simpel lijkt maar wat ik maar niet opgelost krijg. Ik wil dat mijn programma aan de gebruiken een string vraagt en dat het programma controleert hoe groot die is. Dus als de user meer chars invoert dan de bedoeling is moet mijn programma een bericht hierover geven. Ik heb hiervoor de volgende functie geschreven:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| void get_string(char string[],int max_size,char name_item[]){ int i; while(1){ printf("Please enter %s with max %i chars: ",name_item,max_size); for(i=0;i<max_size;i++){ string[i] = getchar(); if(string[i] == '\n'){ string[i] = '\0'; return; } } printf("%s is too long! Please use a string of max %i chars\nPlease Try again\nPlease enter %s: ",name_item,max_size,name_item); } } |
Het probleem is echter dat ik als output krijg dat eerste call (ik doe er 2 achter elkaar) meteen skipt. hij denkt dat ik op enter druk zonder iets in tegeven. Ik denk dat dit komt omdat er een menutje voor zit waarbij je op enter moet drukken en hij de enter als het ware 'meeneemt' dat hij dus te snel is voor de user als het ware. weet iemand hoe ik dit moet oplossen? Heb het volgende al geprobeerd:
- clear van input
- cin.ignore()
- wachten totdat enter wordt losgelaten
helaas werkt dit allemaal niet, heeft iemand ideeën?