Forum huvudsida -> Programmering -> Dynamisk vektor av strukturer
Sidor: 1
hejsansvejsan | 17:51 - 4:e Januari 2011 | Post #1 | |
Medlem Inlägg: 4 Skicka PM |
Hej Jag håller på att läsa programmering på fritiden och har fastnat på en grej. Jag läser C++-programmering femte upplagan av Stephen Prata och har fastnat på uppgift 6 kap 7. Jag har gjort en dynamisk vektor av strukturer där varje vektor ska läsa in för- och efternamn på en person samt hur stor donation han/hon har gett. Jag får dock inte inmatningen av namnet att fungera, den läser inte in något alls utan hoppar bara över till donationsinmatningen.
Här är koden:
Jag får det att fungera om endast förnamn ska skrivas in, men inte både för båda. Jag har inte en blekaste om vad felet kan vara så hjälp uppskattas! |
kode | 21:25 - 4:e Januari 2011 | Post #2 | |
Medlem Inlägg: 45 Skicka PM |
flushar du inputströmmen mellan inmatningarna? jag skulle gissa på att problemet är att du inte gör det. |
hejsansvejsan | 21:38 - 4:e Januari 2011 | Post #3 | |
Medlem Inlägg: 4 Skicka PM |
flusha? Jag har försökt att skriva cin.clear(); innan inmatningen, men det hjälper inte. |
Vitdom | 16:50 - 6:e Januari 2011 | Post #4 | |
Medlem Inlägg: 71 Skicka PM |
Felet är att när du anropar cin.getline Detta kan fixas genom att anropa cin.get() en gång innan du anropar cin.getline. Eller så kan du också anropa cin.sync().
cin.get() tar bort och returnerar ETT tecken ifrån inmatningsbufferten. -------------------------
|
hejsansvejsan | 03:38 - 8:e Januari 2011 | Post #5 | |
Medlem Inlägg: 4 Skicka PM |
tack så mycket, nu lärde jag mig lite mer |
Ragnarök | 15:23 - 6:e Mars 2012 | Post #6 | |
Medlem Inlägg: 5 Skicka PM |
static const int unsigned Size = 32; blir snabbare! -------------------------
|
kode | 19:08 - 6:e Mars 2012 | Post #7 | |
Medlem Inlägg: 45 Skicka PM |
Citat av Ragnarök:
Möjligen, men det är knappast mätbart. |
Ragnarök | 20:35 - 6:e Mars 2012 | Post #8 | |
Medlem Inlägg: 5 Skicka PM |
1 : han alignar arrayen i minnet.
Men som du säger, inget som kanske är mätbart i små mängder! Det är en bra vana att få in liksom! -------------------------
|
Peter | 13:22 - 7:e Mars 2012 | Post #9 | |
Medlem Inlägg: 17 Skicka PM |
Citat av Ragnarök: 2 : det är snabbare för datorn att räkna positiva tal. Varför skulle "positiva tal" vara snabbare? I vilka situationer är det så?
cin.get() tar bort och returnerar ETT tecken ifrån inmatningsbufferten. Tror inte att det är riktigt det som sync() gör så det fungerar inte. get() fungerar så länge som användaren inte har matat in en massa annat före nyradstecknet. Själv föredrar jag att anropa ignore för att ignorera alla tecken fram till och med det första nyradstecknet. cin.ignore(numeric_limits<streamsize>::max(), '\n'); -------------------------
Senast redigerad 13:23 - 7:e Mars 2012 |
Ragnarök | 16:57 - 7:e Mars 2012 | Post #10 | |
Medlem Inlägg: 5 Skicka PM |
sista biten är 1 eller 0 som blir en check om det är ett negativt tal. två unsigned som bli compared kollas bara igenom att se vilken som är den högsta eller lägsta biten satt. -------------------------
|
Vitdom | 14:37 - 15:e April 2012 | Post #11 | |
Medlem Inlägg: 71 Skicka PM |
Citat av Peter:
Jo. int sync ( );
Datavärden jämförs för det mesta med CMP-instruktionen som subtraherar den ena operanden från den andra och sätter processorns resultatflaggor efter resultatet. Dessa flaggor jämförs på olika sätt om man vill jämföra ett positivt eller negativt tal. Däremot tar dessa beräkningar lika lång tid i dagens processorer. -------------------------
|
Peter | 23:14 - 15:e April 2012 | Post #12 | |
Medlem Inlägg: 17 Skicka PM |
Citat av Vitdom:
Har faktiskt undersökt detta lite mer sedan sist. Det skiljer sig lite mellan olika kompilatorer. Med GCC händer det inget alls om man anropar cin.sync(). Hittade en "bug report" som kan vara intressant att läsa: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46624 -------------------------
Senast redigerad 23:16 - 15:e April 2012 |
Sidor: 1
Forum huvudsida -> Programmering -> Dynamisk vektor av strukturer
Du får inte posta i den här tråden | Till toppen
Datum
2024-12-22 14:40
Vecka: 51
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.