Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Co jest zle w tym programie ?


Rekomendowane odpowiedzi

Opublikowano

Podswietla mi sie linijka switch(znak) i wyskakuje : [Error] expected '}' at end of input.

 

 

#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
int main()
{
string imie;
 
cout << "Co chcesz zrobic?" ;
 
switch (znak)
{
case 'podac imie':
cout << "Podac swoje imie :" << endl; 
cin >> imie;
break;
 
case 'sprawdzic wpisane imiona':
cout << imie;
break;
 
    case 'wyjsc z programu':
         break;
         return 0;
}
 
ie068n.jpg
Opublikowano

Nie zamknąłeś nawiasu - otworzyłeś dwa(od maina i od switcha) a zamknąłeś tylko jeden. Czytaj te błędy...

Opublikowano

Dobra juz dziala,ale niepoprawnie

 

Gdy wlaczam program,wyskakuje 

 

 Co chcesz zrobic ?   i konczy program

#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
int main()
{
string imie;
char znak;
 
cout << "Co chcesz zrobic?" ;
 
switch (znak)
{
case 'podac imie':
cout << "Podac swoje imie :" << endl; 
cin >> imie;
break;
 
case 'sprawdzic wpisane imiona':
cout << imie;
break;
 
 
case 'wyjsc z programu':
break;
return 0;  
  
}
}
ie068n.jpg
Opublikowano

Nic dziwnego, skoro w ogóle nie pobierasz decyzji użytkownika...

Opublikowano

Nigdzie w programie nie czytasz niczego z konsoli, w zmiennej znak nic się magicznie nie pojawi.

Dodatkowo przyjrzałem się temu i znalazłem więcej błędów - nie da się używać do tego instrukcji switch, więc będziesz musiał zrobić to za pomocą ifów.

Opublikowano

Pan mowi ze switch normalnie dziala,tylko nie chce mi powiedziec jak to zrobic ...

 

Ale jak mam wczytac switch ? Przeciez switch to instrukcja wyboru,po pytaniu "Co chcesz zrobic" powinien pojawic sie wybor

 

podac imie lu sprawdzic wlasne imiona lub wyjsc z programu

ie068n.jpg
Opublikowano

Switch nie wczytuje automatycznie z konsoli. On bierze jakąś podaną zmienną(w tym przypadku zmienną znak) i na podstawie jej wartości przechodzi do odpowiedniej instrukcji. Do tego działa tylko na liczbach całkowitych, więc nie możesz użyć tu switcha.

Podsumowując:

  • Zmienna znak nie może być typu char, bo char reprezentuje pojedyńczy znak. Uzyj typu std::string
  • Musisz wczytywać coś z konsoli, bo program sam się tego nie domyśli.
  • Napisy w kodzie pisze się pomiędzy " a nie '
  • Program najpewniej nie zadziała tak jak myślisz, ponieważ instrukcja switch wykona się tylko raz.
Opublikowano

 

Podswietla mi sie linijka switch(znak) i wyskakuje : [Error] expected '}' at end of input.

#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
int main()
{
string imie;
 
cout << "Co chcesz zrobic?" ;
 
switch (znak)
{
case 'podac imie':
cout << "Podac swoje imie :" << endl; 
cin >> imie;
break;
 
case 'sprawdzic wpisane imiona':
cout << imie;
break;
 
    case 'wyjsc z programu':
         break;
         return 0;
}
 

 

 

Co to jest ten znak, bo nie widzę, by ta zmienna była gdzieś użyta, czy podana ?

 

Z czego to widzę to, żeby coś wybrać to trzeba w znak napisać: Podać swoje imię, sprawdź wpisane imiona (za pomocą std::cin)

 

No chyba, że gdzieś się pomyliłem, ale string'a dopiero poznaje jednak co do switch nie rozumiesz jego działania.

 

Jakaś zmienna ustala wykonywane działanie, której została przypisana określona wartość funkcji.

int a;
std::cin >> a;
switch (a)
{
case 1: // zamiast 1 może być dowolna wartość jaką należy podać w a, by wywołać daną instrukcję
<instrukcja>
break;
}

Tego char w ogóle nie rozumiem, co chcesz podać ? Jakiś ukośnik, czy co ?

 

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Pojecie-zmiennej-i-podstawowe-typy-danych/11

 

Tutaj zobaczysz za co odpowiada dana zmienna nie tylko z tabelki, ale i na przykładach.

pyhvh7E.png


 


Opublikowano

@@ShastaMan
 

#include <iostream>
#include <conio.h>  // Obsługa klawiatury.
#include <stdio.h>  // Polecenie "exit".
#include <cstdlib>  // Polecenie "cls".
#include <string>

using namespace std;

char znak;
string imie;

int main()
{

while(true)
{
	cout << "Co chcesz zrobic?" << endl;
	cout << "1. Podac imie" << endl;
	cout << "2. Sprawdzic wpisane imiona" << endl;
	cout << "3. Wyjdz z programu" << endl;
	cout << "Wybierz opcje: ";
	cout << endl;

	znak = _getch();

	switch (znak)
	{
	case '1':
		cout << "Podaj imie: ";
		cin >> imie;
		break;
	case '2':
		cout << "Twoje imie: " << imie;
		break;
	case '3':
		exit(0);
	default:
		cout << "Nie ma takiej opcji!";
	}

	getchar();
	system("cls");
}

return 0;
}
Opublikowano

 

@@ShastaMan

 

#include <iostream>
#include <conio.h>  // Obsługa klawiatury.
#include <stdio.h>  // Polecenie "exit".
#include <cstdlib>  // Polecenie "cls".
#include <string>

using namespace std;

char znak;
string imie;

int main()
{

while(true)
{
	cout << "Co chcesz zrobic?" << endl;
	cout << "1. Podac imie" << endl;
	cout << "2. Sprawdzic wpisane imiona" << endl;
	cout << "3. Wyjdz z programu" << endl;
	cout << "Wybierz opcje: ";
	cout << endl;

	znak = _getch();

	switch (znak)
	{
	case '1':
		cout << "Podaj imie: ";
		cin >> imie;
		break;
	case '2':
		cout << "Twoje imie: " << imie;
		break;
	case '3':
		exit(0);
	default:
		cout << "Nie ma takiej opcji!";
	}

	getchar();
	system("cls");
}

return 0;
}

O to mi chodzilo.Tylko czy mozna by zrobic tak zeby te imiona WSZYSTKIE sie zapisywaly.Bo jak wpisze jedno imie to sie zapisuje ale jak drugie imie wpisze to tamto sie kasuje i zostaje tylko te drugie

ie068n.jpg
Opublikowano

@ShastaMan

 

Możesz użyć tablicy.

 

 

 

#include <iostream>
#include <conio.h>
#include <stdio.h>  // Polecenie "exit".
#include <cstdlib>  // Polecenie "cls".
#include <string>

using namespace std;

char znak;
string imie[5];

int main()
{

while(true)
{
	cout << "Co chcesz zrobic?" << endl;
	cout << "1. Podac imie" << endl;
	cout << "2. Sprawdzic wpisane imiona" << endl;
	cout << "3. Wyjdz z programu" << endl;
	cout << "Wybierz opcje: ";
	cout << endl;

	znak = _getch();

	switch (znak)
	{
	case '1':
		for (int i=1; i<=5; i++)	// 5 - Ilość obrotów pętli.
		{
			cout << i << ". Podaj imie: ";
			cin >> imie[i];
		}
		break;
	case '2':
		for (int i=1; i<=5; i++)
		{
			cout << i << ". Wprowadzone imie: " << imie[i] << endl;
		}
		break;
	case '3':
		exit(0);
	default:
		cout << "Nie ma takiej opcji!";
	}

	getchar();
	system("cls");
}

return 0;
} 

 

 

Opublikowano

Albo std::vector:

 

#include <iostream>
#include <conio.h>  // Obsługa klawiatury.
#include <stdio.h>  // Polecenie "exit".
#include <cstdlib>  // Polecenie "cls".
#include <string>
#include <vector>

using namespace std;

char znak;
vector<string> imie;
string chwilowy;

int main()
{

while(true)
{
	cout << "Co chcesz zrobic?" << endl;
	cout << "1. Podac imie" << endl;
	cout << "2. Sprawdzic wpisane imiona" << endl;
	cout << "3. Wyjdz z programu" << endl;
	cout << "Wybierz opcje: ";
	cout << endl;

	znak = _getch();

	switch (znak)
	{
	case '1':
		cout << "Podaj imie: ";
		cin >> chwilowy;
                imie.push_back(chwilowy);
		break;
	case '2':
		for (auto i : imie) {
                cout << "Imie: " << i << endl;
                }
		break;
	case '3':
		return 0;
	default:
		cout << "Nie ma takiej opcji!";
	}

	getchar();
	system("cls");
}

return 0;
}

 

 

  • std::vector - tablica o dynamicznej wielkości - coś jak string dla dowolnego typu danych
  • for (auto i : imie) - oznacza to że będzie jeden przebieg pętli dla każdego elementu w imie, a obecny element będzie dostępny jako i

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...