kończenie programu c++

0

Witam
mam pytanie w jaki sposób napisać pętlę która po wpisaniu np. słowa 'stop' kończy program?

0

Czy ten program ma jakies wprowadzanie danych z klawiatury?

1

Umiesz napisać pętlę i Wiesz co to instrukcje warunkowe? Skąd program ma czytać to słowo? Jeśli z klawiatury w pętli(nieskończonej: while (1)), to, np., tak:

int main(int argc, char **argv){	
	std::string s;
	while (1) {
		std::cin >> s;
		std::cout << "\n";
		if (s == "stop")
			break;
	}

Jeśli inaczej, sprawdzenie może być też w warunku pętli: while (s != "stop").
EDIT: Lub też z czytaniem w pętli (druga opcja):

	std::string s;
	while (s != "stop") {
		std::cin >> s;
		cout << "loop's' running\n";
	}
0

no przykładowo prosty kalkulator, który ma zmienną char wybor , która służy do wybierania znaku działania (+,-,*,/) i po wpisaniu stop program kończyłby działanie.

3

Jak chcesz do char wpisać stringa "stop"?

0

ajj generalnie mi chodzi o to żeby działało tak że jak wpiszę stop to pętla kończy działanie programu i tyle

3
#include <cstdlib>
#include <iostream>
using namespace std;
 
void add() { cout<<"dodajemy"<<endl; }
void mul() { cout<<"mnożymy"<<endl; }
void stop() { exit(0); }
 
typedef void fun();
struct { const string cmd; fun *call; } tb[]=
{
	{"+",&add},
	{"*",&mul},
	{"stop",&stop},
};
 
int main()
{
    for(string cmd;getline(cin,cmd);)
    {
    	bool found=false;
    	for(const auto &r:tb)
    	{
    		if(r.cmd==cmd)
    		{
    			r.call();
    			found=true;
    			break;
    		}
    	}
    	if(!found) cout<<"Nieznane polecenie"<<endl;
    }
}

https://ideone.com/kCQtNU

Albo tak:

#include <cstdlib>
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

void show(double a,double b,double c,char op) { cout<<a<<' '<<op<<' '<<b<<" = "<<c<<endl; }

typedef void fun(double a,double b);
struct rec_t { const string cmd; fun *call; };
vector<rec_t> tb=
{
	{
		{"+",[](double a,double b){ show(a,b,a+b,'+'); }},
		{"*",[](double a,double b){ show(a,b,a*b,'*'); }},
		{"stop",[](double a,double b){ cout<<"nara"<<endl; exit(0); }},
		{"",[](double a,double b){ cout<<"Nieznane polecenie"<<endl; }},
	}
};

int main()
{
	char op;
	string cmd;
	double a,b;
    while(true)
    {
    	if(cin>>a>>op>>b) cmd=string(1,op);
    	else
    	{
    		cin.clear();
    		cin>>cmd;
    	}
    	find_if(begin(tb),end(tb),[&cmd](auto r){ return (!r.cmd.size())||(r.cmd==cmd); })->call(a,b);
		getline(cin,cmd);
    }
}

https://ideone.com/IUuOeu

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