|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <iostream>
using namespace std;
int main()
{
cout << " 1 2 3 4 5 6 7" << endl;
for(int i = 0x0; i <= 0xf; i++)
{
for(int j = 0x0; j <=0x7; j++)
{
string s = "0x" + std::to_string(j) + std::to_string(i);
int zahl = atoi(s.c_str());
if(j == 0x0)
{
cout << i << " ";
}
cout << toascii(zahl) << " ";
if(j == 0x7)
{
cout << endl;
}
}
}
}
|
Hab mir erlaubt die Klammerfehler und den Einstiegspunkt zu korrigieren, deswegen bevorzuge ich btw auch dieses Eine-Klammer-Pro-Zeile-Layout, so kommt man weniger durcheinander mit den Klammern.
Das da kompiliert.
EDIT: Du benutzt den C++11 Standard aber kein C++11? Sachen gibts...
MfG
Check
Das mit dem Einstiegspunkt ist Absicht. Da wir pro Übungszettel n Haufen Aufgaben bekommen und ich nicht für jede Aufgabe ein neues Projekt wollte, habe ich eine main Funktion, mit der ich die Funktionen zu den einzelnen Aufgaben dann aufrufe
Klammerfehler habe ich jetzt keine gefunden. Habe dein Code nochmal mit meinem abgeglichen, finde aber bis auf die neuen Zeilenumbrüche keine Änderungen? Ob man nun '{' am Ende einer Zeile oder in einer extra Zeile findet ist, denke ich, Geschmackssache. Ich nutze seit Jahren die erste Variante
Das mit dem C++11 ist so ne Sache.. Habe den Standard erst gestern in Eclipse zum Laufen bekommen, weiß daher noch nicht, was damit noch alles möglich ist. Bisher habe ich es nur für to_string gebraucht.
Toascii ist nicht im std namespace deklariert. Wenn du std::toascii schreibst, sucht der Compiler in diesem namespace jedoch...
Oh, danke! Da habe ich wohl was falsch verstanden gehabt.
Jetzt muss ich mir nur noch mal anschauen, wieso die Tabelle nur Nullen enthält
atoi konveriert nur Strings, die Integerzahlen darstellen. Nutze strtol stattdessen.
Weitere Informationen:
http://h30097.www3.hp.com/docs/base_doc/…N3/0104____.HTM
Ich sollte mich echt besser über die Funktionen erkundigen, die ich bei Google finde.. Danke!
Jetzt sieht die Ausgabe schon etwas besser aus. Leider aber immer noch nicht ganz richtig.
z.B. "0x2a" liefert ein ? statt '*', also strtol scheint keine buchstaben als hexzahl zu erkennen.
Habe die Zeile mit dem toascii jetzt durch folgendes ersetzt:
|
C-/C++-Quelltext
|
1
2
|
char c = zahl;
cout << c << " ";
|
toascii hatte nur Zahlen geliefert (sowas wie 117, keine einzelnen Zahlen als Zeichen).
Außerdem scheint 0x09 bei mir das gleiche zu bewirken wie die Tab-Taste, obwohl auf dem Aufgabenzettel an der Stelle ein nicht druchbares Zeichen ist?
Und wie kann ich die Fragezeichen (nicht druckbare Zeichen) durch einen . ersetzen? Also ich könnte einfach mit if-Anweisungen die Stellen selbst durch einen . ersetzen, aber das ist nicht der Sinn der Übung, denke ich
Oder gleich 'n
std::stringstream.
MfG
Check
Ich kenne mich damit noch absolut nicht aus. Habe bisher hauptsächlich mit C# gearbeitet und habe jetzt erst seit 4 Wochen C++ an der FH. Habe bei Google atoi gefunden, was angeblich einfacher sein sollte als std:stringstream.