C++ ASCII-Tabelle 'manuell' erstellen bzw. Ausgabe in 5 Spalten ordnen

xenico

Cadet 3rd Year
Registriert
Feb. 2009
Beiträge
63
ASCII-Tabelle 'manuell' erstellen bzw. Ausgabe in 5 Spalten ordnen (jetzt gelöst)

Hallo,

habe folgendes Problem:

Ich mache grad dieses Tutorial, wo ich zur Zeit bei der Übung ganz unten angelangt bin. Hab alles soweit alles erledigt bis auf das Detail mit den 5 Spalten.

Das ist der bisherige Code:
Code:
#include <iostream>
#include <iomanip>

int main()
{
	for (unsigned char i = 32; i < 127 ; i++)
	{
		int zahl;
		zahl = static_cast<int>(i);
		std::cout << std::setw(3) << zahl << " " << i << "	";
	}
}

und ich habe halt keine Plan wie man das jetz anordnen kann. Kann mit bitte jmd. helfen?^^

EDIT:
~So habe ich es mal gelöst~
Code:
#include <iostream>
#include <iomanip>

int main()
{
	for (unsigned char i = 32; i < 128 ; i++)
	{
		int zahl;
		zahl = static_cast<int>(i);
		[B]if (i%6 == 0)
			std::cout << std::endl;
		else[/B]
			std::cout << std::setw(3) << zahl << " " << i << "	";
	}
}
das fettgedruckte hab ich halt noch reingemacht :)
 
Zuletzt bearbeitet: (Lösung selbst gefunden)
ja, wollte dir auch grade das selbe vorschlagen, ich hab es halt so gelöst:

Code:
#include <iostream>
#include <iomanip>

int main()
{
	int zahl;
	int counter = 0;

	for (unsigned char i = 32; i <= 127 ; i++)
	{
		if( counter % 5 == 0 && counter != 0 )
			std::cout << std::endl;

		zahl = static_cast<int>(i);
		std::cout << std::setw(3) << zahl << " " << i << "	";

		counter++;
	}

	std::cout << std::endl << std::endl;

	system("pause");
	return 0;
}

EDIT:

bei deiner version werden aber in der ersten zeile nur 4 ausgaben getätigt

Gruß
BlackMark
 
Ich hoffe, du hast dann auch gemerkt, dass dir auf diese Weise immer ein Character fehlt ;)

Code:
	zahl = static_cast<int>(i);
		if ((i-2)%5 == 0)
			std::cout << std::endl;

		std::cout << std::setw(3) << zahl << " " << i << "	";
...wäre besser
Wobei wohl die erste Zeile nicht 5 Zeichen enthält da du ja bei 32 und nicht bei 30 anfängst. Du müsstest also jedes Mal -2 rechnen und dann Modulo 5 oder einen zweiten Zähler einbauen.

Edit: Da war BlackMark schneller :)
 
Man kann auch statt nem counter die variable zahl als counter verwenden in dem man einfach 32 abzieht

sieht dann so aus ( ist 1. weniger code und 2. spart man sich ne variable )

Code:
#include <iostream>
#include <iomanip>

int main()
{
	for (unsigned char i = 32; i <= 127 ; i++)
	{
		int zahl;

		zahl = static_cast<int>(i);

		if( (zahl - 32) % 5 == 0 && (zahl - 32) != 0 )
			std::cout << std::endl;

		std::cout << std::setw(3) << zahl << " " << i << "	";
	}

	std::cout << std::endl << std::endl;

	system("pause");
	return 0;
}

oder so wie es MichaelR gemacht hat funktioniert es natürlich auch!

Gruß
BlackMark
 
Zuletzt bearbeitet:
Jap, das hatte ich irgendwie gemerkt^^

Danke euch beiden, iwie hatte ich schon den richtigen Gedanken, aber die Umsetzung :P
funzt jetz, thx
 
Zurück
Oben