getch & flushen
-
hast du auch <stdio.h> included?
-
Nein, nur "cstdio"
Mit stdio.h:
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland a.cpp: Error E2272 a.cpp 32: Identifier expected in function main() Error E2188 a.cpp 32: Expression syntax in function main() *** 2 errors in Compile ***
-
poste doch mal den ganzen code...
-
#include <iostream> #include <conio.h> #include <stdio.h> //#include <cstdio> int iquadrat(int izahl); int main() { int ieingabe; int iausgabe; char cdone='j'; std::cout << "Quadrat rechnen:" << std::flush; while (cdone=='j') { std::cout << "\nVon was? => " << std::flush; std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin >> ieingabe; iausgabe=iquadrat(ieingabe); std::cout << iausgabe << std::flush; std::cout << "\nNochmal?(j/n)" << std::flush; std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); while ((cdone = getchar()) != '\n' && cdone != EOF); } return 0; } int iquadrat(int izahl) { return (izahl*izahl); }
-
wow, extrem viel 'std::' drin, probier mal so:
#include <stdio.h> #define iquadrat(z) ((z)*(z)) int main() { int ieingabe; int cdone='j'; puts ("Quadrat rechnen:"); while (cdone=='j') { printf ("\nVon was? => "); scanf ("%d", &ieingabe); printf ("%d\nNochmal?(j/n)", iquadrat(ieingabe)); while (getchar() != '\n'); // <--- drain stdin cdone = getchar(); } }
-
Naja,
wartet jetzt zwar auf [enter], läuft sonst aber gut!
Danke!
-
#define iquadrat(z) ((z)*(z))
Ganz Böses Makro, ganz Böse.
// schlecht ersichtlich was passiert wenn man sowas schreibt int k = iquadrat(++z)
Abgesehen von der Umgehung der Typkontrolle durch den Präprozessor.
-
makrosKönnenBöseSein schrieb:
// schlecht ersichtlich was passiert wenn man sowas schreibt int k = iquadrat(++z)
mein fehler. ich hätte das makro GROSS schreiben sollen. dann erkennt man, dass es ein makro ist und vermeidet sowas.
-
Und wieso sollte ich ein Makro schreiben, wenn ich auch eine Funktion schreiben kann?
-
Helium schrieb:
Und wieso sollte ich ein Makro schreiben, wenn ich auch eine Funktion schreiben kann?
eine funktion, nur um einen wert mit sich selbst zu multiplizieren?
das finde ich etwas übertrieben.
-
inline
-
langeweile schrieb:
inline
__forceinline
http://blogs.msdn.com/doronh/archive/2006/02/16/533933.aspx
-
Weder inline noch __forceinline. Mein Compiler expandiert den Code sogar ohne inline oder __forceinline.