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.