c programmieren
-
siehe col_conio.c
-
Anstatt clrscr() kannst du einfach system("PAUSE"); nehmen.
Ausserdem habe ich dein Programm mal etwas umgeschrieben:#include <stdio.h> #include <stdlib.h> #include <conio.h> #define ANZ 6 float val[ANZ]; float durchschnitt(void){ float gesamt=0; unsigned int cnt; for(cnt=1;cnt<=ANZ;cnt++){ gesamt+=val[cnt-1]; } return gesamt/(cnt-1); } int main(void){ unsigned int cnt; printf( "S T A T I S T I K \n" "================= \n" "================= \n" " \n" " \n" "(Druecken Sie eine beliebige Taste um das Programm zu starten...)\n" ); while(!getch()); for(cnt=1;cnt<=ANZ;cnt++){ system("CLS"); printf("Bitte geben Sie den %d-ten Umsatz ein: ",cnt); scanf("%f",&val[cnt-1]); } system("CLS"); printf("Der durchschnittliche Umsatz betraegt: %f",durchschnitt()); getchar(); getchar(); //Programm anhalten return EXIT_SUCCESS; }
-
labrador schrieb:
Anstatt clrscr() kannst du einfach system("PAUSE"); nehmen.
wenn, dann 'system ("clear")' oder 'system ("cls")', aber nicht 'pause'.
-
hasso schrieb:
ich programmier c
Aja. Die neuen Versionen der Improved Console gibt's ja nur noch für C++. Sorry.
hasso schrieb:
wenn man unter <windwos.h> schaut sieht man die funktion clrscr()
Ja. Die Deklaration von
clrscr( )
steht unter#include <windows.h>
, was nicht bedeutet, dass die Funktion in<windows.h>
deklariert ist...Wenn Du diese Version der Improved Console verwenden willst, dann speichere Dir
col_conio.h
undcol_conio.c
per Copy&Paste. Diecol_conio.h
bindest Du mit#include "col_conio.h"
ein und diecol_conio.c
kompilierst Du und linkst sie zu Deinem Programm.hasso schrieb:
du hast ´ja die funktionen in kommentare gesetzt sodass die nicht mehr complimiert werden.
Stimmt. Die Standardkonforme alternative hab' ich dir daruntergeschrieben...
hasso schrieb:
wenn man das so komplementiert gehts ebenfalls nicht.
Was meinst Du mit "geht nicht"? Für mich funktioniert es einwandfrei.
greetz, Swordfish
-
lösch-freak schrieb:
labrador schrieb:
Anstatt clrscr() kannst du einfach system("PAUSE"); nehmen.
wenn, dann 'system ("clear")' oder 'system ("cls")', aber nicht 'pause'.
Stimmt! - Im Code hab ich's aber richtig gemacht.
-
Dieses Programm läuft auch bei mir einwandfrei jedoch nicht, wenn ich die clrscr(); funktion einsetzte. dass mit dem windows.h geht dann nur bei c++ wie ich aus deinen letzten eintrag entnehmen konnte sodass jetzt wegfällt. ich würd gern mit der funktion clrscr () arbeiten und nicht mit anderen.....
#include <stdio.h> /* #include <conio.h> nicht Standard */ int main( void ) { int x=1; int const anzahl = 6; int i=1; float zahl; printf(" \n \t S T A T I S T I K \n"); /* getch(); */ getchar( ); printf(" \n \t sooooo jetzt gehts los ;)"); /* getch(); */ getchar( ); /* clrscr(); geht nicht Portabel */ for( x = 1; x <= anzahl; x++ ) { printf( "Bitte geben Sie den %i ten Umsatz ein \n ", i++ ); scanf( "%f", &zahl ); } }
.....unter col_conio.h der C-Version contains files: befindet sich diese datei.
#include <windows.h>
// sets color for output on console window
void setcolor(const WORD wAttributes);// clears console window with special color
void clrscr(const WORD wAttributes);// clears console window (white text on black background)
void cls(void);// sets cursor to given position
// (1, 1) means upper left corner
void gotoxy(const int x, const int y);// sets cursor to (1, 1)
void home(void);// gets current cursor position (X)
int wherex(void);// gets current cursor position (Y)
int wherey(void);// gets current screen dimension (X)
int getdimensionx(void);// gets current screen dimension (Y)
int getdimensiony(void);enum CursorMode
{
CURSOR_OFF,
CURSOR_INSERT,
CURSOR_OVERWRITE
};// sets cursor mode
void setcursor(enum CursorMode mode);// sets title of console window
void settitle(const char* title);wie zusehen befindet sich dort die funktion:
// clears console window with special color
void clrscr(const WORD wAttributes);Was nun? gehts hiermit oder nicht gibts plan b ?
gruß hasso
-
hasso schrieb:
wenn man unter <windwos.h> schaut sieht man die funktion clrscr()
Ja. Die Deklaration von
clrscr( )
steht unter#include <windows.h>
, was nicht bedeutet, dass die Funktion in<windows.h>
deklariert ist...Wenn Du diese Version der Improved Console verwenden willst, dann speichere Dir
col_conio.h
undcol_conio.c
per Copy&Paste. Diecol_conio.h
bindest Du mit#include "col_conio.h"
ein und diecol_conio.c
kompilierst Du und linkst sie zu Deinem Programm.per copy und paste. sprich kopieren und einfügen. wo denn einfügen und wie linkt man das zu dem programm.
kopieren meinst du sicherlich der inhalt der in col_conio.h und col_conio.c steht.
oder?
lg hasso
-
hasso schrieb:
dass mit dem windows.h geht dann nur bei c++ wie ich aus deinen letzten eintrag entnehmen konnte sodass jetzt wegfällt. ich würd gern mit der funktion clrscr () arbeiten und nicht mit anderen.....
Wer lesen kann ist klar im Vorteil. Ich habe geschrieben, dass die aktuelle Version 4.0 der Improved Console nur für C++ ist. Die
windows.h
kannst Du sowohl in C++ als aus in C verwenden, was aber nichts zur Sache tut, daclrscr( )
nicht in windows.h deklariert ist!hasso schrieb:
.....unter col_conio.h der C-Version contains files: befindet sich diese datei.
[...]
wie zusehen befindet sich dort die funktion:
// clears console window with special color
void clrscr(const WORD wAttributes);Ja. Ich weiß. In
col_conio.h
ist die Deklaration und incol_conio.c
die Definition.hasso schrieb:
Was nun? gehts hiermit oder nicht gibts plan b ?
Swordfish schrieb:
Wenn Du diese Version der Improved Console verwenden willst, dann speichere Dir col_conio.h und col_conio.c per Copy&Paste. Die col_conio.h bindest Du mit #include "col_conio.h" ein und die col_conio.c kompilierst Du und linkst sie zu Deinem Programm.
hasso schrieb:
per copy und paste. sprich kopieren und einfügen. wo denn einfügen und wie linkt man das zu dem programm.
kopieren meinst du sicherlich der inhalt der in col_conio.h und col_conio.c steht.Du erstellst die beiden Dateien
col_conio.h
undcol_conio.c
auf deinem PC, und kopierst die Inhalte aus deinem Browser hinein. Wie Du Dein Programm kompilierst und linkst, steht in der Dokumentation deines Compilers/Linkers.greetz, Swordfish
-
hasso schrieb:
ich würd gern mit der funktion clrscr () arbeiten und nicht mit anderen.....
dann füg' oben, also über deinem restlichen code, das hier ein:
#include <windows.h> void clrscr (void) { static HANDLE hStdout = NULL; static CONSOLE_SCREEN_BUFFER_INFO csbi; const COORD startCoords = {0,0}; DWORD dummy; if(!hStdout) { hStdout = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hStdout,&csbi); } FillConsoleOutputCharacter(hStdout, ' ', csbi.dwSize.X * csbi.dwSize.Y, startCoords, &dummy); }
-
Du erstellst die beiden Dateien
col_conio.h
undcol_conio.c
auf deinem PC, und kopierst die Inhalte aus deinem Browser hinein. Wie Du Dein Programm kompilierst und linkst, steht in der Dokumentation deines Compilers/Linkers.greetz, Sweordfish
hab
col_conio.h als header datei
undcol_conio.c
als c datei erstellt.so ich hab auch den linker gefunden glaub ich zumindestens da wo headerdatei,Quelldatei und resscourcendateien steht wenn du den meinst.
hab maustaste gedrückt -> eigenschaten und dann auf Linker.unter eingabe steht: zusätzliche abhängigkeiten.
soll ich da irgendwie die 2 dateien die ich erstellt habe aufschreiben?lg danke
-
soo muss noch kurz was hinzufügen.
ich hab das jetzt mal versucht zu komplimieren.es gibt eine fehlermeldung. ich glaub die ist interessant!
schaut mal
1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\datei\datei\stat.c(21) : error C2198: "clrscr": Nicht genügend Argumente für Aufruf.
Nicht genügend Argumente für Aufruf.
#include <stdio.h> #include <conio.h> #include "col_conio.h" main() { int x=1; int const anzahl = 6; int i=1; float zahl; printf(" \n \t S T A T I S T I K \n"); getch(); printf(" \n \t sooooo jetzt gehts los \n ;)"); getch(); clrscr(); for( x = 1; x <= anzahl; x++ ) { printf( "Bitte geben Sie den %i ten Umsatz ein \n ", i++ ); scanf( "%f", &zahl ); } }
-
hasso schrieb:
hab
col_conio.h
als header datei undcol_conio.c
als c datei erstellt.so ich hab auch den linker gefunden glaub ich zumindestens da wo headerdatei,Quelldatei und resscourcendateien steht wenn du den meinst.
hab maustaste gedrückt -> eigenschaten und dann auf Linker.unter eingabe steht: zusätzliche abhängigkeiten.
soll ich da irgendwie die 2 dateien die ich erstellt habe aufschreiben?Das, was Du beschreibst riecht nach dem Projektexplorer des Visual Studio. Kopiere beide Dateien in dein Projektverzeichnis (wenn sie nicht schon dort sind). Rechtsklick auf Quelldateien -> hinzufügen,
col_conio.c
auswählen. Rechtsklick auf Headerdateien -> hinzufügen,con_conio.h
auswählen. In deiner bisherigen.c
Datei fügst du vor der Funktion main folgendes ein:#include "con_conio.h"
hasso schrieb:
1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\datei\datei\stat.c(21) : error C2198: "clrscr": Nicht genügend Argumente für Aufruf.
nimm entweder
clrscr( FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY ); // oder cls( );
greetz, Swordfish
-
hallo,
Hast du dich HIER verschrieben ? meinst du nicht "col_conio.h"
#include "con_conio.h"
hasso schrieb:
1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\datei\datei\stat.c(21) : error C2198: "clrscr": Nicht genügend Argumente für Aufruf.
nimm entweder
clrscr( FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY ); // oder cls( );
greetz, Swordfish[/quote]
Die funktion cls(); funktioniert bei mir auch wenn ich die das #include"col_conio.h" weglasse.
würd doch heissen das die ganze arbeit kurz gesagt umsonst war oder??
clrscr( FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY ); // oder cls( );
DIe beiden versionen klappen. jedoch nicht clscr();
bei clscr();
kommt diese fehlermeldung.1>------ Neues Erstellen gestartet: Projekt: datei, Konfiguration: Release Win32 ------
1>Die Zwischen- und Ausgabeehdateien für das Projekt "datei" mit der Konfiguration "Release|Win32" werden gelöscht.
1>Kompilieren...
1>stat.c
1>.\stat.c(15) : warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\conio.h(145): Siehe Deklaration von 'getch'
1>.\stat.c(19) : warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\conio.h(145): Siehe Deklaration von 'getch'
1>.\stat.c(20) : error C2198: "clrscr": Nicht genügend Argumente für Aufruf.
1>col_conio.c
1>.\col_conio.c(214) : warning C4133: 'Funktion': Inkompatible Typen - von 'const char *' zu 'LPCWSTR'
1>Das Buildprotokoll wurde unter "file://c:\Users\hasso\Documents\Visual Studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\datei\datei\Release\BuildLog.htm" gespeichert.
1>datei - 1 Fehler, 3 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========lg hasso
-
hasso schrieb:
Hast du dich HIER verschrieben ? meinst du nicht "col_conio.h"
Ja. Sorry.
hasso schrieb:
Die funktion cls(); funktioniert bei mir auch wenn ich die das #include"col_conio.h" weglasse.
Wo soll
cls( )
denn deklariert sein, außer incol_conio.h
?hasso schrieb:
Die beiden versionen klappen. jedoch nicht clscr();
bei clscr();
kommt diese fehlermeldung.[...]
No-na.
clrscr( )
in dieser Variante der Improved Console erwartet eben einen Parameter. Wenn's Dir nicht passt, dann musst Du eben die beiden Dateien umschreiben.Darf ich fragen, wann du mit C angefangen hast? Hast Du ein Lehrbuch?
greetz, Swordfish
-
Hi..
hab eins das nennt sich c von anfang an hab seid ner woche begonnen täglich am programmieren .. ich find das schwierige an einer programmier sprache is der anfang wie man die ganze struktur raus hat wie das funktioniert.
Ich hab mir von erlenkötter. das Buch c von anfang an gekauft das ist ein prachtstück nur das men den funktionen der headerdatei ist nicht so ausführlich erklärt. ps. deswegen werd ichin zukunft wohl öfter ne frage haben
danke nochmals.
lg hasso