Hallo, ich bin von Eclips auf Visual Studio 2010 umgestiegen, weil Eclips immer wieder Probleme auf meinem Rechner verursacht hat. Unter Eclips konnte ich das Programm direkt in der IDE ausführen. Bei Visual Studio wird es immer in einer DOS-Box ausgeführt. Kann mir jemand einen Tip geben wie ich das Programm auch direkt unter Visual Studio ausführen kann. Es währe auch toll wenn man es mit Parametern starten kann. Bei Google hab ich leider nach über zwei Stunden suche nichts passendes gefunden. Vielen Danke Marcel
Marcel S. schrieb: > Bei > Visual Studio wird es immer in einer DOS-Box ausgeführt. Kann mir jemand > einen Tip geben wie ich das Programm auch direkt unter Visual Studio > ausführen kann. es wird doch unterm Visual Studio ausgeführt. Wenn es ein Konsolen Programm ist dann wird auch eine passende Konsole angezeigt. Verstehe das Problem nicht. > Es währe auch toll wenn man es mit Parametern starten > kann. einfach bei Optionen die Parameter einstellen.
Es sieht so aus als würde das Programm mit Hilfe von CMD ausgeführt.
Ich habe als Hausaufgabe ein Programm das einen Eingegebenen Text
analysiert geschrieben. Soweit funktioniert es. Ich muss aber einen sehr
langen Text den wir bekommen haben, damit analysieren, um zu überprüfen
ob es geht. Ich habe die TXT Datei geöffnet den Inhalt kopiert und
wollte den Text über Tastenkombination während ich das Programm ausführe
einfügen. Das funktioniert aber leider nicht.
Dafür suche ich eine Lösung.
Ich hoffe ihr könnt mir helfen.
hier mein Programm: bestrehend aus drei Dateien
****************** textanaly_m.c ****************************
// Programm zur Textanalyse 1. Praktikumsversuch
#include <stdio.h>
#include <stdlib.h>
#include "textanalys.h"
int main(int argc, char* argv[])
{
// Variablen Definition und Initialisierung
int c=0;
int zeilen = 0;
int wl= 0; // = buchstaben
int zeichenProZeile=0;
int cat;
int oldState = PRE_WORD;
int newState = PRE_WORD;
int worte = 0;
int wla[MAXLAENGE]={0};
printf(" Bitte Text eingeben \n\n");
// While Schleife, solange zeichen = !EOF
do
{
// Lese nächstes Zeichen
c=getchar();
// Lese nächstes Zeichen
//c=getchar();
// Zeilenende ?
if(c == '\n' || c == EOF)
{
// Zeichenkategorie ist WS
cat=WS;
// Zeilenzaehler erhohen
zeilen++;
// Zeichen pro Zeile auf Null setzen
zeichenProZeile=0; //*********
}
else
{
// Ermittlung der Zeichenkategorie
cat=getCat(c);
zeichenProZeile++; //*****************************
}
// Ermittlung des neuen Textzustands (in Abhängigkeit vom alten
Textzustand und der Zeichenkategorie
newState=getNewState(oldState, cat);
// neuen Textzustand auswerten (in Abhängigkeit vom alten
Textzustand, ggfls. Wortzähler und Wortlangenzaehler erhoehn)
//Wortlängenzähler erhöhen
if (oldState==PRE_WORD && newState==IN_WORD) wl=1;
else if(oldState==IN_WORD && newState==IN_WORD) wl++;
// Wortende feststellen und Wortzähler erhöhen
else if (oldState==IN_WORD && (newState==PRE_WORD || NO_WORD))
{
worte++;
if(wl>MAXLAENGE) wl=MAXLAENGE;
wla[wl-1]++;
}
oldState=newState; //*********************
} while(c != EOF); //****************************
// Anzahl der Worte und Zeilen ausgeben
printf("Anzahl der Worte = %i \n",worte);
printf("Anzahl der Zeilen = %i \n", zeilen);
// Ausgabe der Verteilung der Wortlänge
outWL(wla,MAXLAENGE);
system("PAUSE");
}
******************* tafunc.c **************************************
#include <stdio.h>
#include "textanalys.h"
// Ermittlung der Kategorie des Zeichens
int getCat(int c)
{
int cat;
// überprüft ob c Blank, TAB oder NewLine ist
if(c==' ' || c =='\t' || c=='\n') cat = WS;
// überprüft ob c Unterstrich, Klein- oder Großbuchstabe ist
else if(c=='_' || (c>='A' && c<='Z') || (c>='a' && c<='z')) cat = BU;
// überprüft ob c eine Ziffer ist
else if(c>='0' && c<='9') cat=ZIFF;
// c ist eines der verbleibenden ASCII-, Sonder und Steuerzeichen
else cat=SONST;
return cat;
}
// Ermittlung des neuen Textzustands
int getNewState(int old, int cat)
{
int newState=old;
switch(old)
{
case PRE_WORD:
if(cat==BU) newState=IN_WORD;
else if(cat==ZIFF || cat==SONST) newState=NO_WORD;
break;
case IN_WORD:
if(cat==SONST) newState=NO_WORD;
else if(cat==WS) newState=PRE_WORD;
break;
case NO_WORD:
if(cat==WS)
break;
}
return newState;
}
// Ausgabe der Wortlängenverteilung in der Standartausgabe. Die
Wortlängenverteilung ist im Arraywla der Größe len abgelegt
void outWL(int wla[], int len)
//***************************************
{
int i,j;
for(i=0; i<len; i=i+1)
{
printf(" %i.\t Anzahl Worte mit Laenge :\t %\t", i+1, wla[i]);
for(j=0; j<wla[i] ;j++)
{
printf ("*");
}
printf ("\n");
}
}
**************************** textanaly.h *********************
// Symbolische Konstanden für den Textzustand
#define PRE_WORD 0 // nächstes Zeichen kann Anfang eines Wortes sein
(u. Ausgangszustand zu Programmbeginn)
#define IN_WORD 1 // innerhalb eines Wortes
#define NO_WORD 2 // innerhalb einer Zeichenfolge, die kein Wort ist -
d.h. das folgende Zeichen kann nicht Beginn eines neuen Wortes sein
// Symbolische Konstanden für die Zeichenkategorie
#define WS 0 // Whitespace-Character (Blank, TAB ('\t') oder NL ('\n'))
#define BU 1 // Groß-, Kleinbuchstaben und Unterstrich
#define ZIFF 2 // Ziffern
#define SONST 3 // die verbleibenden ASCII-Zeichen - Sonder- und
Steuerzeichen.
// Symbolische Konstanden für die Länge des Wortlängen Arrays
#define MAXLAENGE 18
// Deklaration der Funktionen
int getCat(int c);
int getNewState(int old, int cat);
void outWL(int wla[], int len);
Marcel S. schrieb: > Es sieht so aus als würde das Programm mit Hilfe von CMD ausgeführt. Ist auch gut so. > ob es geht. Ich habe die TXT Datei geöffnet den Inhalt kopiert und > wollte den Text über Tastenkombination während ich das Programm ausführe > einfügen. Das funktioniert aber leider nicht. > > Dafür suche ich eine Lösung. Ganz einfach. Schau dir mal das CMD-Fenster genau an. Es hat links oben ein Icon. Da kann man mit der rechten Maustaste draufdrücken, kriegt ein Kontextmenü. In diesem Konztextmenü gibt es ein 'Bearbeiten' und da drunter wieder ein einfügen. Aber: es geht auch viel einfacher. Da das ganze unter CMD läuft, kann man ganz einfach die Input Redirection benutzen. Der Command Interpreter kann dein Textfile dem Programm anstelle der Standard Eingabe unterjubeln, so dass zb ein getchar oder ein scanf dann eben nicht mehr von der Konsole liest, sondern von diesem File. Dazu legst du das Textfile dort hin, wo auch deine Source liegen. Dann öffnest die die Peojekt-Properties, gehst auf "Configuration Properties', dort wieder auf Debugging und trägst bei den 'Command Arguments' ein < intput.txt der < ist die Input Redirection und anstelle von input.txt gibst du natürlich deine Textdatei an. Dann brauchst du nicht lange mit Copy&Paste rumspielen, sondern in der Debug Sitzung kommt der Input für dein Programm von dieser Datei und nicht von der Tastatur.
Danke für die schnelle Antwort. Das mit CMD hat geklappt. Ich werde jetzt noch die andere lösung testen. Vielen Dank Marcel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.