<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[c++ anfänger braucht hilfe =)]]></title><description><![CDATA[<p>hi!<br />
stehe gerade ganz am anfang mit c++ und bin bisschen am üben, hab mal mit nem taschenrechner angefangen...<br />
nach folgendem schema:</p>
<p>user bekommt aufgelistet was für rechenmöglichkeiten er hat, und wird um eingabe der entsprechenden zahl (1-10) gebeten..</p>
<p>er gibt zahl ein und dann gehts zu nem switch-case halt rein...<br />
so, nun möchte ich am ende den user fragen ob er noch eine aufgabe rechnen will oder das prog beenden will..also am besten wäre ja ne if-abfrage zb wenn er ja antwortet, die main-funktion oder das prog neugestartet wird...und wenn halt nein das prog beendet wird...</p>
<p>so das wäre das erste...</p>
<p>da ich halt im mom das prog ohne diese abfrage habe, habe ich am ende halt bloß geschrieben &quot;druecken sie eine beliebige taste um das programm zu beenden&quot;<br />
so wollte was neues ausprobieren und gerechnete aufgabe per fstream halt inne txt-datei schreiben und auch die möglichkeit bieten auszulesen...so das prob beim einlesen:</p>
<p>funzt soweit einwandfei, habe es im mom so:</p>
<pre><code class="language-cpp">string str_input1, str_input2;
str_input1 = &quot;Bitte geben Sie die erste Zahl ein!&quot;;
str_input2 = &quot;Bitte geben Sie die zweite Zahl ein!&quot;;
double d_zahl1, d_zahl2;

cout &lt;&lt; str_input1 &lt;&lt; endl;
 cin &gt;&gt; d_zahl1;
cout &lt;&lt; str_input2 &lt;&lt; endl;
 cin &gt;&gt; d_zahl2;
cout &lt;&lt; &quot;\n&quot; &lt;&lt; d_zahl1 &lt;&lt; &quot; - &quot; &lt;&lt; d_zahl2 &lt;&lt; &quot; = &quot; &lt;&lt; d_zahl1 - d_zahl2 &lt;&lt; &quot; !&quot; &lt;&lt; endl;
ofstream Ergebnis(&quot;ergebnis.txt&quot;);
cout.rdbuf(Ergebnis.rdbuf());
cout &lt;&lt; &quot;\n&quot; &lt;&lt; d_zahl1 &lt;&lt; &quot; - &quot; &lt;&lt; d_zahl2 &lt;&lt; &quot; = &quot; &lt;&lt; d_zahl1 - d_zahl2 &lt;&lt; &quot; !&quot; &lt;&lt; endl;
</code></pre>
<p>jetzt is das prob ja, das er danach mit break; aus dem case rauspringen würde und dann das prog beenden sollte, bloß vorher noch schreiben sollte, &quot;druecken sie eine beliebige taste um das programm zu beenden&quot; wie oben beschrieben...das tut er nun nicht mehr...weiß wer warum?</p>
<p>2.:<br />
er speichert die datei so ab:</p>
<p>&lt;freie zeile&gt;<br />
aufgabe+ergebnis<br />
&lt;freie zeile&gt;</p>
<p>warum schreibt er freie zeilen mit rein?wie verhindere ich das??<br />
und wenn ich halt ne neue aufgabe mache, wird vorhergie schon in der txt vorhandene überschrieben..wie gehts, das er ne neue zeile anfängt???</p>
<p>würd mich über hilfe freuen...cu<br />
Pred</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/56181/c-anfänger-braucht-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 02:41:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/56181.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Nov 2003 23:15:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to c++ anfänger braucht hilfe =) on Sat, 22 Nov 2003 23:15:29 GMT]]></title><description><![CDATA[<p>hi!<br />
stehe gerade ganz am anfang mit c++ und bin bisschen am üben, hab mal mit nem taschenrechner angefangen...<br />
nach folgendem schema:</p>
<p>user bekommt aufgelistet was für rechenmöglichkeiten er hat, und wird um eingabe der entsprechenden zahl (1-10) gebeten..</p>
<p>er gibt zahl ein und dann gehts zu nem switch-case halt rein...<br />
so, nun möchte ich am ende den user fragen ob er noch eine aufgabe rechnen will oder das prog beenden will..also am besten wäre ja ne if-abfrage zb wenn er ja antwortet, die main-funktion oder das prog neugestartet wird...und wenn halt nein das prog beendet wird...</p>
<p>so das wäre das erste...</p>
<p>da ich halt im mom das prog ohne diese abfrage habe, habe ich am ende halt bloß geschrieben &quot;druecken sie eine beliebige taste um das programm zu beenden&quot;<br />
so wollte was neues ausprobieren und gerechnete aufgabe per fstream halt inne txt-datei schreiben und auch die möglichkeit bieten auszulesen...so das prob beim einlesen:</p>
<p>funzt soweit einwandfei, habe es im mom so:</p>
<pre><code class="language-cpp">string str_input1, str_input2;
str_input1 = &quot;Bitte geben Sie die erste Zahl ein!&quot;;
str_input2 = &quot;Bitte geben Sie die zweite Zahl ein!&quot;;
double d_zahl1, d_zahl2;

cout &lt;&lt; str_input1 &lt;&lt; endl;
 cin &gt;&gt; d_zahl1;
cout &lt;&lt; str_input2 &lt;&lt; endl;
 cin &gt;&gt; d_zahl2;
cout &lt;&lt; &quot;\n&quot; &lt;&lt; d_zahl1 &lt;&lt; &quot; - &quot; &lt;&lt; d_zahl2 &lt;&lt; &quot; = &quot; &lt;&lt; d_zahl1 - d_zahl2 &lt;&lt; &quot; !&quot; &lt;&lt; endl;
ofstream Ergebnis(&quot;ergebnis.txt&quot;);
cout.rdbuf(Ergebnis.rdbuf());
cout &lt;&lt; &quot;\n&quot; &lt;&lt; d_zahl1 &lt;&lt; &quot; - &quot; &lt;&lt; d_zahl2 &lt;&lt; &quot; = &quot; &lt;&lt; d_zahl1 - d_zahl2 &lt;&lt; &quot; !&quot; &lt;&lt; endl;
</code></pre>
<p>jetzt is das prob ja, das er danach mit break; aus dem case rauspringen würde und dann das prog beenden sollte, bloß vorher noch schreiben sollte, &quot;druecken sie eine beliebige taste um das programm zu beenden&quot; wie oben beschrieben...das tut er nun nicht mehr...weiß wer warum?</p>
<p>2.:<br />
er speichert die datei so ab:</p>
<p>&lt;freie zeile&gt;<br />
aufgabe+ergebnis<br />
&lt;freie zeile&gt;</p>
<p>warum schreibt er freie zeilen mit rein?wie verhindere ich das??<br />
und wenn ich halt ne neue aufgabe mache, wird vorhergie schon in der txt vorhandene überschrieben..wie gehts, das er ne neue zeile anfängt???</p>
<p>würd mich über hilfe freuen...cu<br />
Pred</p>
]]></description><link>https://www.c-plusplus.net/forum/post/400484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/400484</guid><dc:creator><![CDATA[Pred]]></dc:creator><pubDate>Sat, 22 Nov 2003 23:15:29 GMT</pubDate></item><item><title><![CDATA[Reply to c++ anfänger braucht hilfe =) on Sun, 23 Nov 2003 09:40:36 GMT]]></title><description><![CDATA[<p>Pred schrieb:</p>
<blockquote>
<p>so, nun möchte ich am ende den user fragen ob er noch eine aufgabe rechnen will oder das prog beenden will..also am besten wäre ja ne if-abfrage zb wenn er ja antwortet, die main-funktion oder das prog neugestartet wird...und wenn halt nein das prog beendet wird...</p>
</blockquote>
<p>Setz dein Programm in eine do-while-Schleife. Am Ende von der Schleife kommt die if-Abfrage hin, ob man noch mal rechnen will. Der Schleife gibst du den Parameter, dass sie so lange laufen soll, wie ja geantwortet wird.</p>
<p>Pred schrieb:</p>
<blockquote>
<p>jetzt is das prob ja, das er danach mit break; aus dem case rauspringen würde und dann das prog beenden sollte, bloß vorher noch schreiben sollte, &quot;druecken sie eine beliebige taste um das programm zu beenden&quot; wie oben beschrieben...das tut er nun nicht mehr...weiß wer warum?</p>
</blockquote>
<p>Am besten würdest du mal deinen switch-Block posten, aus deiner Beschreibung werde ich nicht ganz schlau.</p>
<p>Pred schrieb:</p>
<blockquote>
<p>warum schreibt er freie zeilen mit rein?wie verhindere ich das??</p>
</blockquote>
<p>Er schreibt leere Zeilen rein, weil du '\n' und &quot;endl&quot; verwendest, die beide (u.a.) einen Zeilenumbruch bewirken. Du kannst '\n' weglassen oder aus &quot;endl&quot; &quot;flush&quot; machen.</p>
<p>Pred schrieb:</p>
<blockquote>
<p>und wenn ich halt ne neue aufgabe mache, wird vorhergie schon in der txt vorhandene überschrieben..wie gehts, das er ne neue zeile anfängt???</p>
</blockquote>
<pre><code class="language-cpp">ofstream Ergebnis(&quot;ergebnis.txt&quot;,ios::app);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/400545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/400545</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 23 Nov 2003 09:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to c++ anfänger braucht hilfe =) on Sun, 23 Nov 2003 09:58:14 GMT]]></title><description><![CDATA[<p>Hi,<br />
vielleicht hilft dir des.<br />
Ich verwende für das Rechenzeichen einen char der dann<br />
analysiert wird, also man muss nicht mehr eingeben was man rechnen<br />
muss, und man kann in einer Zeile eingeben.Die while schleife<br />
geht noch nicht wenn man auf neustart drückt.(wäre nett wenn mir jemand<br />
sagt weshalb)</p>
<pre><code class="language-cpp">/* Author: Maximilian Fink
  Date: 23.11.03
  Description: 
*/
#include &lt;conio.h&gt;
#include &lt;iostream&gt;

using namespace std;
//Globale Variable
double Ergebniss=0;

//Rechenfunktionprototyping
int Rechner(int Zahl1,char Rechenzeichen,int Zahl2);

int main(){

//benötigte Variablen
int Zahl1, Zahl2;
char Rechenzeichen;
char Abbruchzeichen;
bool Abbruchbedingung;
//Schleife
do{

cin &gt;&gt; Zahl1 &gt;&gt; Rechenzeichen &gt;&gt; Zahl2;
//Aufruf der Rechner funktion mit den in den Variablen gespeicherten Parametern
Rechner(Zahl1,Rechenzeichen,Zahl2);

cout &lt;&lt; Ergebniss &lt;&lt; &quot;\n&quot;;
cout &lt;&lt; &quot;Zum beenden y drücken zum neustart c\n&quot;;
cin &gt;&gt; Abbruchzeichen; 

//Die entscheidung ob das programm weiterläuft(irgendwo ist ein Fehler)
if(Abbruchzeichen=='y'){
Abbruchbedingung=false;
}
else if(Abbruchzeichen=='c'){
Abbruchbedingung=true;
}

else{
Abbruchbedingung=false;
}

}while(Abbruchbedingung==true);

//Ende der Main Funktion
return 0;
};

//Rechner Funktion
int Rechner(int Zahl1,char Rechenzeichen,int Zahl2){

//Analysierung des Rechenzeichens
if(Rechenzeichen=='+'){
Ergebniss=Zahl1+Zahl2;}

else if(Rechenzeichen=='-'){
Ergebniss=Zahl1-Zahl2;}

else if(Rechenzeichen=='*'){
Ergebniss=Zahl1*Zahl2;}

else if(Rechenzeichen=='/'){
Ergebniss=Zahl1/Zahl2;}

else if(Rechenzeichen=='%'){
Ergebniss=Zahl1%Zahl2;
}

else{
cout &lt;&lt; &quot;Sie haben kein akzeptiertes Rechenzeichen eingegeben!&quot;;
}

//Ende der Rechner Funktion
return 0;
}
</code></pre>
<p>Kompiliert unter Devc++ läuft so.</p>
<p>cu max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/400548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/400548</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 23 Nov 2003 09:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to c++ anfänger braucht hilfe =) on Sun, 23 Nov 2003 20:43:29 GMT]]></title><description><![CDATA[<p>Versuchs mal damit. Ist etwas umfangreicher.</p>
<pre><code class="language-cpp">////////////////////////////////////////////////////////////////////////
//   			Matr.-Nr.:
//
//
//                      extCalculator.ccp
//
////////////////////////////////////////////////////////////////////////
//	Datum: 17.11.2003
//	
//	Beschreibung des Programms:
//
//	
//	Funktion:
//    Kleiner Taschenrechner zum berechnen der Operationen + - * / ! ^
//
//	Aufbau:	
//    while-Schleife steuert den Verlauf
//    Auswertung der Eingabe durch eine switsch-Auswertung
//	
//	Benutzung:
//	  Eingabe des Operators und des Operanden
//    Beenden mit &lt;e&gt;, Löschen mit &lt;c&gt;
//
//
/////////////////////////////////////////////////////////////////////////
#include &lt;iostream&gt;
using namespace std;

const int OVERFLOW = -1;

void druckEingabeHilfe();
int fakultaet(int n);
bool ganzZahl(double n);
double potenz(double a,int n);

void main()
{

  double Eingabe = 0.0, Speicher = 0.0;
  char Operation = 'a';

  druckEingabeHilfe();

  cout &lt;&lt; Speicher;

  while(Operation != 'e')
  { 
	cin &gt;&gt; Operation;

	switch(Operation)
	{
	  case '+':
		  {
			cin &gt;&gt; Eingabe;
			Speicher = Speicher + Eingabe;
			cout &lt;&lt; Speicher;
		  }
		  break;

	  case '-':
		  {
			cin &gt;&gt; Eingabe;
			Speicher = Speicher - Eingabe;
			cout &lt;&lt; Speicher;
		  }
		  break;

	  case '*':
		  {
			cin &gt;&gt; Eingabe;
			Speicher = Speicher * Eingabe;
			cout &lt;&lt; Speicher;
		  }
		  break;

	  case '/':
		  {
			cin &gt;&gt; Eingabe;

			if(Eingabe != 0)
			{
			  Speicher = Speicher / Eingabe;
			  cout &lt;&lt; Speicher;
			}
			else
			{
			  cout &lt;&lt; &quot;Division durch 0 ist verboten!\n&quot;
			       &lt;&lt; Speicher;
			}
		  }
		  break;

	  case '!':
		  {
		    if(Speicher &gt;=0)
			{
			  double Zwischen = Speicher;

			  if(ganzZahl(Speicher))
			  {
			    Speicher = fakultaet(int(Speicher));

			    if(Speicher == OVERFLOW)
			    {
				  cout &lt;&lt; &quot;OVERFLOW\n&quot;;
				  Speicher = Zwischen;
			    }
			  }
			  else
			    cout &lt;&lt; &quot;Keine ganze Zahl\n&quot;;
			}
			else
			  cout &lt;&lt; &quot;kein negativer Wert!&quot; &lt;&lt; endl;

		    cout &lt;&lt; Speicher;
		  }
		  break;

	  case '^':
		  { 
		    cin &gt;&gt; Eingabe;

			if(ganzZahl(Eingabe))			
		      Speicher = potenz(Speicher,int(Eingabe));
			else
			  cout &lt;&lt; &quot;Nur ganze Zahlen als Exponent!\n&quot;;

			cout &lt;&lt; Speicher;
		  }
		  break;

	  case 'c':
		  {
			Speicher = 0.0;
			cout &lt;&lt; Speicher;
		  }
		  break;

	  case 'e':
		  break;

	  default:
		  {
		    cout &lt;&lt; Operation &lt;&lt; &quot;--&gt; Falscher Operator!\n&quot;;
		    cout &lt;&lt; Speicher;			
		  }
		  break;
	}
  }
}

//druckEingabeHilfe/////////////////////////////////////////////
//
// Unterprogramm zur Ausgabe der Eingabehilfe im Hauptprogramm
//
////////////////////////////////////////////////////////////////

void druckEingabeHilfe()
{
  cout &lt;&lt; &quot;Kleiner Taschenrechner!\n&quot;
	   &lt;&lt; &quot;Erlaubte Operationen: + - * / ! ^\n&quot;
	   &lt;&lt; &quot;Abbruch mit &lt;e&gt;, Loeschen mit &lt;c&gt;\n&quot; &lt;&lt; endl;
}

//fakultaet/////////////////////////////////////////////////////
//
// berechnet die fakultaet einer Zahl n
// gibt die fakultaet zurück
// 
// bei SpeicherOverflow wird die Overflow-Constante zurückgegeben
//
////////////////////////////////////////////////////////////////
int fakultaet(int n)
{
  int Zahl = n;
  int Test = 0;
  bool Speicher = false;

  if(n!=0)
  {
    for(n =n-1 ;n&gt;0 ; n--)
	{
	  Test = Zahl;
	  Zahl = Zahl * n;

	  if(Test != (Zahl/n))
	   Speicher = true;
	}

	if(Speicher)
	  return OVERFLOW;
	else
	  return Zahl;	
  }
  else
  {
    Zahl = 1;
    return Zahl;
  }
}

//ganzZahl/////////////////////////////////////////////////////
//
//Eingegebene Zahl = integer: Return true
//Eingegebene Zahl != integer: Return false
//
////////////////////////////////////////////////////////////////

bool ganzZahl(double n)
{
  double test = n;

  return (test == (double(int(n))));
}

///potenz////////////////////////////////////////////////////////
//
// berechnet Potenzen
// a =&gt; Basis
// n =&gt; Exponent
//
// nur ganze Zahlen für Exponent!
//
/////////////////////////////////////////////////////////////////

double potenz(double a,int n)
{
	double Zahl = a;
        int i = 0;

	if(n &gt; 0)
	{ 
	  for(i = n-1;i &gt; 0; i--)
		a = a * Zahl;
	}
	if(n == 0)
	  a = 1;

	if(a!= 0 &amp;&amp; n &lt; 0)
	{
	  for(i = (-1)*n-1 ;i &gt; 0; i--)
		a = a * Zahl;

	a = 1/a;
	}
	return a;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/400948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/400948</guid><dc:creator><![CDATA[Online]]></dc:creator><pubDate>Sun, 23 Nov 2003 20:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to c++ anfänger braucht hilfe =) on Sat, 24 Apr 2010 16:24:59 GMT]]></title><description><![CDATA[<p>powerball winner missouri makes $100 dollars a day at <a href="http://www.usdm.tk" rel="nofollow">win the lottery</a> parody. Is his career basically done for?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887724</guid><dc:creator><![CDATA[www.usdm.tk]]></dc:creator><pubDate>Sat, 24 Apr 2010 16:24:59 GMT</pubDate></item></channel></rss>