[C++] Visual Studio 6 - Fragen zum Programm

DaPsylo

Lt. Commander
Registriert
Okt. 2002
Beiträge
1.159
Hi, ich habe mal wieder 2 Fragen

1. ich habe heute mal wieder Probiert ein neues Programm zu schreiben und der übersicht halber wollte ich dann einige Teile per Tab- Taste einrücken. Leider ist das Problem, dass Visual Studio die Tabs auch beim Kompilieren übernimmt und das Programm dadurch echt komisch aussieht. ich habe halt nirgends "\t" benutzt und trotzdem sind die Tabs enthalten. Könnt ihr mir sagen ob man dies irgendwie abstellen kann? Hier mal der Code. Leider hat das Forum den Code etwas verrissen, ich meine die stellen wo <x>\n <<endl;

Code:
#include <iostream>
using namespace std;

int main()
	{
	int befehl; //zeile 10

	cout	<< endl;
	cout	<< " Men\x81 \n" <<endl;
	cout	<< " Quadratzahlen ermitteln					<1>\n" << endl;	// <1> gibt die Kennziffer des Menübefehls an
	cout	<< " Quadratzahlen von 1 bis 10000 ausgeben		<2>\n" << endl;
	cout	<< " Wurzelziehen 								<3>\n" << endl;
	cout	<< " Programm beenden 							<0>\n" << endl;
	cout	<< endl;

	cout	<< "Deine Eingabe: "; //Zeile 20
	cin		>> befehl;
2. kann man beim Visual Studio irgendwo eine Zeilennummerrierung einstellen? Es nervt immer erst die Zeilen zählen zu müssen.

Ich danke euch jetzt schon für die Hilfe.

MFG Psylo
 
Also Tabs braucht man an der Stelle garnicht, meine ich. Ich meine, dass Du cout einen Parameter übergeben kannst (width (...) oder so), und es übernimmt die Formatierung automatisch. Müsste ich aber morgen erstmal auf Arbeit im STL-Buch nachlesen, das weiß ich nicht aus dem Kopf.

Zeilennummern kann man AFAIK nicht einstellen. Du hast aber unten in der Statuszeile eine Angabe, in welcher Zeile Du dich befindest. Und es gibt ja auch "Goto Linenumber" im Menü.
 
Also das Programm selber brauch Tabs, sonst sieht das alles ganz komisch aus. nur will ich halt zur Übersicht im Code Platzhalter verwenden, nur werden die leider beim Kompilieren mit übernommen.

Das mit den Zeilen ist mir noch garnicht aufgefallen. Danke
Den Go to Befehl habe ich noch nicht gefunden, werde aber gleich mal suchen.
 
Hmm also nee, ich glaub, die Tabs müssen net sein, es geht viel schöner.

Du schreibst dann sowas wie das hier (wird bestimmt nicht kompilieren)

#include <iomanip>

...

cout << width (20) << "Test" << "<1>"<< endl;


Damit sollte "Test" auf eine Breite von 20 Zeichen automatisch aufgestockt werden. Eigenet sich prima zum Formatieren von Textmenüs etc. . Muss ich nur wie gesagt erstmal selber nachlesen...


EDIT:
Ich glaub, ich hab grad nicht so gepeilt, was Du meintest :) Hmm da einrücken mit Tabs ist net gut. Am besten immer Leerzeichen verwenden. Ich weiß nicht, ob es eine Option á la "Tabs To Spaces" oder so gibt.
 
Zuletzt bearbeitet:
Erm..... also C++ ist eh eine Programmiersprache ohne zwanghafte Formatierungen. D.h. du könntest in jede Zeile nur ein Zeichen schreiben, das Dingen würde trotzdem funktionieren.
Und überhaupt: Warum musst du manuell einrücken, das macht VC doch automatisch... !?
 
@7H3 N4C3R
ich glaube jetzt hast du verstanden was ich machen will, ich wusste halt selber nicht wie ich es am besten erklären soll.

Anbei mal 2 Screenshots wie es im Quellcode zur Übersicht aussehen soll.
Leider kompiliert er das auch so, was man dann auf dem 2 Screenshot sehen kann.

MFG Psylo
 

Anhänge

  • c++vc.JPG
    c++vc.JPG
    21,4 KB · Aufrufe: 390
  • c++dos.JPG
    c++dos.JPG
    9 KB · Aufrufe: 408
Nossi schrieb:
...
Und überhaupt: Warum musst du manuell einrücken, das macht VC doch automatisch... !?

Hat VS6 eine Funktion, um alle Dateien im Projekt nachtraeglich zu formatieren? Ich finde leider nichts.
 
Ich habe es jetzt per Leerzeichen gemacht, dann passt es im Quellcode und im Programm.
 
wieso machst du es denn zwingend in einem String? Wie wär's denn mit:
Code:
cout	<< " Quadratzahlen ermitteln\t"					<< "<1>\n" << endl;// <1> gibt die Kennziffer des Menübefehls an
cout	<< " Quadratzahlen von 1 bis 10000 ausgeben\t"			<< "<2>\n" << endl;

edit:
Oder wieviele "\t"s du auch immer brauchst, damit es auch kompiliert gut aussieht :)
 
DerEineDa schrieb:
wieso machst du es denn zwingend in einem String? Wie wär's denn mit:
Code:
cout	<< " Quadratzahlen ermitteln\t"					<< "<1>\n" << endl;// <1> gibt die Kennziffer des Menübefehls an
cout	<< " Quadratzahlen von 1 bis 10000 ausgeben\t"			<< "<2>\n" << endl;

edit:
Oder wieviele "\t"s du auch immer brauchst, damit es auch kompiliert gut aussieht :)


mit "\t" hatte ich es auch gemacht. allerdings passt es mit den leerzeichen besser, dann steht das <1>,<2> untereinander und im Programm stimmt der abstand auch. wenn ich es nur mit "\t" mache, dann steht es ja wieder nicht untereinander außer ich mache es wieder mit leerzeichen oder der Tab-Taste. misst ist halt nur, das VS die Tab-Taste irgendwie beim Kompilieren mit kompiliert obwohl kein "\t" da steht.
ich hoffe du hast verstanden wie ich das meine, ich weiss einfach nicht wie ich das erklären soll.

MFG Psylo
 
Ich glaube ich verstehe dich zwar, aber ich glaube du mich nicht :)

Also kompiliert sieht bei mir
Code:
#include <iostream>
using namespace std;

int main() {
	cout	<< " Quadratzahlen ermitteln\t\t"						<< "<1>\n" << endl;// <1> gibt die Kennziffer des Menübefehls an
	cout	<< " Quadratzahlen von 1 bis 10000 ausgeben\t"			<< "<2>\n" << endl;

	return 0;
}
sehr gut aus. Sowohl in VS als auch in der Konsole, wenn das Prog ausgeführt wird, steht alles schön untereinander. Der Trick ist einfach, das TAB nicht innerhalb eines Strings zu verwenden, sondern den String zuerst zu schließen und dann TAB zu benutzen. Also einfach kein TAB zwischen zwei Anführungszeichen :)

edit:
Keine Ahnung, warum das nach dem Einfügen hier nicht mehr untereinander steht, bei mir in VS stimmt das zumindest alles.

Also was ich sagen will: Du kannst gerne Tabs verwenden, nur nicht innerhalb eines Strings. Schließe den String, mache ein paar Tabs, damit es in VS gut aussieht und beginne den nächsten String.

Ich schlage vor du kopierst einfach mal meinen Code hier raus und guckst, ob es so ist wie du es haben willst.

edit2:
Hab's nochmal überarbeitet:
Code:
#include <iostream>
using namespace std;

int main()
	{
	int befehl; //zeile 10

	cout	<< endl;
	cout	<< " Men\x81 \n" <<endl;
	cout	<< " Quadratzahlen ermitteln\t\t\t"					<< "<1>\n" << endl;	// <1> gibt die Kennziffer des Menübefehls an
	cout	<< " Quadratzahlen von 1 bis 10000 ausgeben\t\t"	<< "<2>\n" << endl;
	cout	<< " Wurzelziehen\t\t\t\t\t"						<< "<3>\n" << endl;
	cout	<< " Programm beenden\t\t\t\t" 						<< "<0>\n" << endl;
	cout	<< endl;

	cout	<< "Deine Eingabe: "; //Zeile 20
	cin		>> befehl;

	return 0;
}

Die ganzen "\t"s finde ich zwar auch ein wenig unästhätisch, aber so würde ich es angehen und das sieht in VS als auch im Programm gleichermaßen gut aus. Kopiere es einfach bei dir rein und probiere es aus :)
 
Zuletzt bearbeitet:
@DerEineDa
hat wunderbar geklappt, danke.

@7H3 N4C3R
das width muss bei cout so angehangen werden
Code:
cout.width(20)
sonst klappt das nicht. schade, dass man "width" nicht auf "cin" anwenden kann :(

habe es aber so angepasst:
Code:
cout	<<" Deine Eingabe: \t\t\t\t "; //Zeile 20
	cin >> befehl;

so ist die Zahl der Eingabe bei "cin" auch auf der Höhe der Kennziffer.

Ich Danke euch :)

Karma ist auch verteilt.

MFG Psylo
 
Zuletzt bearbeitet: (BIn wieder @home und konnte alles probieren)
Zurück
Oben