6.Stunde printf()

01/18/2008 13:24 MeepMoep#1
Guten Mittag,
Kommen wir zu einer 2.Ausgabe Möglichkeit im Consolen Fenster
Code:
printf()
print f ist in <cstdio> deklariert.

Beispiel:
Code:
printf(„Moep“);
printf(„Moep %s“, „Meep“)
printf kann man also genau so verwenden wie cout! Aber printf hat eine besonderheit, die Platzhalter

Code:
%c		einzelnes Zeichen
%d		Dezimale Ganzzahl
%x		Hexadezimale Ganzzahl
%f		Gleitkommazahl
%e		Gleitkommazahl ( Wissenschaftliche Schreibweise)
%s		String
Ich habe bisher nur %d und %x benutzt ^^

Kommen wir zur Anwendung
Code:
long var1;
printf(„blabla %x blubb“, var1);
// Ausgabe „blabla (wert von var1 im Hexadezimalsystem) blubb“
So, mit diesem Wissen solltet ihr in der Lage sein ein Programm zu schreiben, welches eine HexZahl ins Dezimalsystem umwandelt und andersrum ;D Das ist übrigens eure Hausaufgabe ^^
01/18/2008 13:28 bloodx#2
wie währe es wenn du erstmal erklärt wie eine win32 Konsole aufgebaut ist von #include etc her? :P
01/18/2008 13:31 MeepMoep#3
Müsste ich das erstmal wissen :P
Aber hey, wär doch ne schöne Aufgabe für dich ;D
01/18/2008 13:35 bloodx#4
Möep kann ich nacher machen wenn ich Zuhause bin :)
01/18/2008 14:51 666me#5
brauche hilfe ^^ hier mein "werk"

Code:
#include <iostream>
#include <cstdio>
using namespace std;

void Auswahl()
{
    cout << " Wollen sie Hex in Dez umwandeln (1) oder Dez in Hex (2)?" << endl;
    int var1;
    cin >> var1;
}
void HexInDez()
{
	cout << "Geben sie die Hex Zahl ein!";
	long var2;
	cin  >>  var2;
    long var4;
	printf(var2,"%d",var4);
}
void DezInHex()
{ 
    cout << "Geben sie die Dez Zahl ein!";
	long var3;
	cin  >>  var3;
    long var5;
	printf(var3,"%x",var5);
}

int main()
{
    Auswahl();

    if (var1==1)
 {
      HexInDez();
      cin.get;
 }
    if (var1==2)
 {
      DezInHex();
      cin.get;
 }
  cin.get();
}
01/18/2008 14:57 MeepMoep#6
So wie du das vor hast, brauchst du Globale variablen ;D
Werd ich im nächsten Tut ansprechen ^^
01/18/2008 17:08 Burner999#7
666me du brauchst doch theoretisch nur 2 variablen eine für die Hex eingabe und eine für die Dez eingabe also theoretisch sieht Dez2Hex so aus

Code:
long zahl;
cin >> zahl;
printf("%x",zahl);
Edit: wie mach ich in printf eig nen zeilen umbruch?
und welche art variable muss ich nehmen um hex zahlen einzugeben long funzt bei mir net das gibt ne ziemlich merkwürdige endlos schleife
01/18/2008 17:28 x]vIrus[x#8
1. \n
2. egal
int var;
scanf("%x",&var);
01/18/2008 18:00 666me#9
@ burner die var1 is für die auswahl ob nu hex oder dez ...
schau dir mal den code genauer an ^^"

also 3 brauch ich ^^
ich test jetzz nochma mit dem weg von virus

So mein code geht zwar jetz aber er "übersetzt" die eingegebene zahl nicht ..^^"

weder mit

int var;
scanf("%x",&var);

noch mit printf
01/18/2008 18:31 Burner999#10
Also irgendwarum kommt mein compieler sobald ich nen buchstaben eingebe immer in ne endlosschleife und führt nur den printf befehl aus :/

könnte mir wer nochma genauer erklären wie das mit scanf() funzt hab das net wirklich verstanden

Code:
#include <iostream>
#include <cstdio>
using namespace std;
int zahl;
int m;
int i;
int main()
{
printf("Willkommen beim Hex2Dez und Dez2Hex umwandler [1] für Hex2Dez und [2] für Dez2Hex");
while(0<1)
{
printf("[1] oder [2]?n");
cin >> m;
if (m==2)
{
cin >> zahl;
printf("%xn",zahl);
}
if (m==1)
{
cin >> zahl;
printf("%dn",zahl);         
       
}
m=0;
zahl=0; 
 


}  

}
01/18/2008 18:40 666me#11
das kommt unendlich weil du es in der schleife drin hast xD

übersetzen tut er bei mir auch nich
01/18/2008 19:58 x]vIrus[x#12
Quote:
Originally Posted by Burner999 View Post
Also irgendwarum kommt mein compieler sobald ich nen buchstaben eingebe immer in ne endlosschleife und führt nur den printf befehl aus :/

könnte mir wer nochma genauer erklären wie das mit scanf() funzt hab das net wirklich verstanden

Code:
#include <iostream>
#include <cstdio>
using namespace std;
int zahl;
int m;
int i;
int main()
{
printf("Willkommen beim Hex2Dez und Dez2Hex umwandler [1] für Hex2Dez und [2] für Dez2Hex");
while(0<1)
{
printf("[1] oder [2]?n");
cin >> m;
if (m==2)
{
cin >> zahl;
printf("%xn",zahl);
}
if (m==1)
{
cin >> zahl;
printf("%dn",zahl);         
       
}
m=0;
zahl=0; 
 


}  

}
#....
main
{
int vara,varb;
scanf("%i",&vara); //ZAHL eingeben also z.b. 4564561
scanf("%x",&varb); //hex-wert eingeben ( entweder ff oder 0xff ich weiß nich mehr )

//scanf ist eine funktion die einen Wert einliest, %x gibt an, dass es sich um einen hex wert handeln soll, %i gibt an,d ass es ein int wert sein soll, mit &var wird die addresse einer variable übergeben, in diesem fall einer int variable

// etwas grundlegendes: hex = int = dez = sonstiges, also der wert is genau dupfen gleich wie alles andere, aber er wird halt anders angezeigt o,o
//printf gibt nur werte aus, %i als int string, %x als hex string

printf("Zahl1 als hex: %x",vara);
printf("\nZahl1 als int: %i",vara);
printf("\nZahl2 als hex: %x",varb);
printf("\nZahl2 als int: %i",varb);

}
01/18/2008 19:59 x]vIrus[x#13
#elitepvpers @ quakenet, live hilfe > all
01/21/2008 13:28 x]vIrus[x#14
warum sollte ich den printf befehl nich nutzen dürfen? ich mag ihn