jonibygg Postad 2 juni, 2011 Share Postad 2 juni, 2011 Hej! När jag kör nedanstående program så går det fint att skriva in hur många konton som skall skapas. Programmet går vidare och frågar efter Namn på kontohavare, detta görs i funktionen nyttKonto. Efter min inmatning trycker jag enter och där händer inget mer. Antagligen har detta med cin-satserna att göra, men jag har inte riktigt fattat det här med cin.ignor osv, när behövs det ena osv. Tacksam för hjälp med detta, framför allt så jag förstår vad som är fel. // Bankkonto // main.cpp // Uppgift 2.3 // // Created by Johan Nilsson on 2011-05-22. // Copyright 2011. All rights reserved. // #include <iostream> #include <string> #include <iomanip> using namespace std; struct Konto { string namn; double saldo; double ranta; }; Konto nyttKonto(); void visaSaldo(Konto s); void ranteKostnad(Konto m); void clearConsol(); int main (int argc, const char * argv[]) { //Bestäm dimensionen / antal konton som skall behandlas int s; cout << "Antal konto?" << endl ; cin >> s; //Sätt dimensionen på minaKonton utifrån input variabel s //samt fyll på med info i for-loopen. Konto* minaKonton = new Konto[s]; for (int i = 0; i < s; i++) { minaKonton[i] = nyttKonto(); } //Skriv ut kontohavare och saldo på respektive konto i en tabell. clearConsol(); cout << "Saldo: " << endl; cout << left << setw(25) << "Kontohavare" << setw(1) << "Saldo" << endl ; for (int i = 0; i < s; i++) { visaSaldo(minaKonton[i]); } //Skriv ut kontohavare och räntekostnad på respektive konto i en tabell clearConsol(); cout << "Räntekostnad:" << endl ; cout << left << setw(25) << "Kontohavare" << setw(1) << "Räntekostnad" << endl ; for (int i = 0; i < s; i++) { ranteKostnad(minaKonton[i]); } return 0; } //Fyll på strukturen Konto Konto nyttKonto() { Konto s; cout << "Mata in Kontohavare: " << endl ; getline(cin, s.namn); cout << "Insättning: " << endl ; cin >> s.saldo; cout << "Ränta i %: " << endl ; cin >> s.ranta; cin.ignore(1000, '\n'); return s; } //Skriv ut saldo, indata är minaKonton void visaSaldo(Konto s) { cout << left << setw(25) << s.namn << setw(1) << s.saldo << " kr" << endl ; } //Skriv ut räntekostnad, indata är minaKonton void ranteKostnad(Konto m) { double rantaKr = (m.saldo * m.ranta)/100; cout << left << setw(25) << m.namn << setw(1) << rantaKr << " kr" << endl ; } //Rensa konsolen på antal blank rader void clearConsol() { const int blankRader = 5; for (int i = 0; i < blankRader; i++) { cout << '\n'; } } Länk till kommentar Dela på andra webbplatser More sharing options...
Koplimi Postad 2 juni, 2011 Share Postad 2 juni, 2011 Jag la in en cin.ignore(1000, '\n'); efter du läst in "antal konton". Är inte heller riktigt haj på cin.ignore. Kommer ihåg att jag brukade använda getline istället. Länk till kommentar Dela på andra webbplatser More sharing options...
jonibygg Postad 2 juni, 2011 Författare Share Postad 2 juni, 2011 Tack för ditt förslag, testade det, fungerade inte ändå??? Klippte ut all kod i main.cpp och klistrade in i Textmate och körde programmet därifrån, då fungerade det. Öppnade ett nytt projekt i Xcode och klistrade in samma kod och körde run, då fungerade det. Det som är konstigt är att min kod har fungerat, jag skrev den tidigare i veckan när jag satt på ett hotell och skrotade, så det jag skulle göra idag var bara att kommentera koden lite grann tänkte jag. När det var gjort valde jag att testa den och då fungerade det inte, jag sparar min kod på dropbox, kanske kan det vara det som är problemet? Strunt samma nu funkar samma kod som inte fungerade tidigare. Länk till kommentar Dela på andra webbplatser More sharing options...
jonibygg Postad 2 juni, 2011 Författare Share Postad 2 juni, 2011 Så här gör Dropbox med mina tecken ibland? Svenska tecken blir feltolkade, kanske var det något sådant i den andra koden som gjorde att det inte fungerade. Dator nyDator() { Dator d; cout << "Skriv in dina data f√∂r datorn \nMinne: "; cin >> d.minne; cout << "H√•rddisk: "; cin >> d.hdd; cout << "Bildsk√§rm: "; cin >> d.bildskarm; return d; } Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.