Wątek przeniesiony 2017-12-17 16:27 z C/C++ przez Patryk27.

Wczytywanie danych z konsoli pomija instrukcje

0

Witam postanowiłem napisać program na dane osobowe (w ramach przypomnienia).
Podczas wpisywania danych np. imienia. to przeskakuje wszystkie funkcje jakie ma zrobić, oto mój kod:

#include <iostream>
#include <ctime>
#include <fstream>
#include <string>
#include <windows.h>

using namespace std;

char imie; //Imie
char nazwisko; //Nazwisko
int pesel; //Pesel
int r_u; //Rok urodzenia
char imie_m; //Imie mamy
char imie_t; //Imie taty
char rodz; //Rodzenstwo
int i_rodz; //Ilosc rodzenstwa
char status; // czy ma dziewczyne, chłopaka
char plec; // kobiet czy mezczyzna
	
void dodaj()
{	
	cout << "Podaj twoje imie: " << endl;
	cin >> imie;
	cout << "Podaj swoje nzwisko: " << endl;
	cin >> nazwisko;
	cout << "Podaj swoj pesel: " << endl;
	cin >> pesel;
	cout << "Podaj swoja date urodzenia... np..(2002): " << endl;
	cin >> r_u;
	cout << "Podaj imie swojej mamy: " << endl;
	cin >> imie_m;
	cout << "Podaj imie swojego taty: " << endl;
	cin >> imie_t;
	cout << "Czy msz rodzenstwo (tak/nie): " << endl;
	cin >> rodz;
	cout << "Podaj ilosc swojego rodzenstwa: " << endl;\
	cin >> i_rodz;
	cout << "Twoj status (czy masz chlopaka czy dziewczyne (Poprawna odpowiedz... Tak/Nie))" << endl;
	cin >> status;
	cout << "Twoj plec: " << endl;
	cin >> plec;
}

void save()
{
	cout << "Zapisuje..." << endl;
	string const dane("C:\\Users\\user\\AppData\\Roaming\\nie\\Dane Osobowe\\security.txt");
	ofstream save11(dane.c_str());
	cout << "sprawdzam..." << endl;

	if (save11)
	{
		save11 << "Imie i Nazwisko: " << imie << " " << nazwisko << endl;
		save11 << "Urodzony: " << r_u << endl;	
		save11 << "Pesel: " << pesel << endl;
		save11 << "Imie mamy: " << imie_m << endl;
		save11 << "Imie taty: " << imie_t << endl;
		save11 << "Rodzeństwo: " << rodz << endl;
		save11 << "Ilość rodzeństwa: " << i_rodz << endl;
		save11 << "Związek: " << status << endl;
		save11 << "Płeć: " << plec << endl;
	}
	cout << "KONIEC!" << endl;
}

int wybor;

int main()
{
	cout << "--------MySql--------" << endl;
	cout << "[1] Dodaj - Dodaje do bazy Danych." << endl;
	cout << "[2] Usun - Usowa z bazy Danych." << endl;
	cout << "[3] Ostatnia modyfikacja - Pokazuje kiedy plik byl modyfikowany." << endl;
	cout << "[4] Lista - Wyswietla wszystkie dane osobowe..." << endl;
	cin >> wybor;
	switch (wybor)
	{
		case 1:
		{
			Beep(500, 200);
			dodaj();
			save();
		}
	}
}

Dzięki za pomoc!
ps, próbowałem również bez voidow...

3
  1. cin nie jest funkcją.

  2. char imie; - to oznacza, że zmienna imie przyjmuje jeden znak, a nie ciąg znaków.

  3. Nie komentuj na siłę - czy naprawdę uważasz, że komentarz Imię jest potrzebny przy deklaracji char imie;? ;-)

  4. int r_u; - int rok_urodzenia; - nie skracaj nazw zmiennych; powinny one być opisowe same w sobie, a nie wyłącznie w akompaniamencie komentarza.

  5. ps, próbowałem również bez voidow... co mają voidy do tego?

0
  1. Nie rozumiem do końca co chcesz przez to powiedzieć, z tego co pamiętam to cin jest po to aby zapisać dane.
  2. Już rozumiem, Dzięki!
  3. Haha, faktycznie.
  4. Poprawione!
  5. Myślałem, że to jest winna voidow.
0

Ad 1. cin służy temu, aby wczytywać dane, lecz nie jest funkcją.

Ad 5. W jaki sposób może to być wina voidów? Wiesz czemu w ogóle służą czy tak sobie zgadujesz? :-P

0
  1. Wiem jak ich używać, lecz nie wiem do czego służą

ps, program naprawiony, wykorzystałem do naprawy tego błędu tablice, tzn char imie [ 50 ]

1

"Wiem jak ich używać, lecz nie wiem do czego służą" - trochę jedno z drugim się gryzie.

Poczytaj - Pusty typ danych

0

Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1