Jag har ett konstigt problem när jag tar in två inmatningar i rad från användaren via cout/cin-satser. När man fått förfrågan och skrivit in första inmatningen så fortsätter programmet _förbi_ nästkommande cout/cin-sats utan att man ges nån möjlighet att skriva in det andra värdet. Så här ser koden ut:
Jag har ingen 100% koll på ditt problem men jag tror det har något med att "enter tryckningen" inte fångas upp utan läggs i dina andra inmatningar! prova att deklarera en char (char c)
och fånga upp enter med: cin.get(c); efter dina cin>> ...
Ja, har också hört att man kan använda flush() för att rensa nån buffert, men kompilatorn klarade inte "flush(cin)" och det hjälper inte att köra "flush(cout)". Programmet fortsätter alltså ändå förbi fråga 2. Jag har alltså lagt flusharna precis innan fråga 2 i koden.
Angående cin.get(c) så hade det blivit smidigare att direkt plocka in användarinmatningen till string istället för att gå omväg om char[]. Eller förresten, hur smidigt är det att konvertera en char[]-string till en "vanlig" string? Finns det nån funktion som plockar över tecknena i char[]-stringen till en string?
Det jg menade var att du fångar upp din variabel i en string som du redan gör men där efter så plockar du upp return tecknet med en char (cin.get(x);) Så har jag löst det i vissa fall..
Nej, det funkar inte. När jag skriver nedanstående kod så plockar programmet endast förnamnet av den regissör jag skriver in och fortsätter förbi fråga 2.:
char tempreturn;
...
cout << "Ange en regissör: ";
cin >> sinput;
cin.get(tempreturn);
wanted_dir = sinput;
cout << wanted_dir << endl; //här skrivs bara förnamnet ut till skärmen
cout << "Ange ett år: ";
cin >> input2;
wanted_year = atoi(input2);
...