Dies ist das Programm, das ich versucht wurde zu machenC++ printf nur am Ende erscheint
das Programm funktioniert zu lernen, aber die Meldung „das Rechteck Höhe Typen“ und „geben Sie die Breite des Rechtecks“ erscheint nur, wenn das Programm
ist über#include <stdio.h>
using namespace std;
float calculateArea(float a, float b)
{
return a * b;
}
float calculatePerimeter(float a, float b)
{
return 2*a + 2*b;
}
void showMessage(char *msg, float vlr)
{
printf("%s %5.2f", msg, vlr);
}
int main()
{
float height, width, area, perimeter;
printf("type the rectangle height");
scanf("%f%*c", &height);
printf("type the rectangle width");
scanf("%f%*c", &width);
area = calculateArea(height, width);
perimeter = calculatePerimeter(height, width);
showMessage("The area value is =", area);
showMessage("The perimeter value is =", perimeter);
return 0;
}
Dies liegt daran, dass printf nicht sofort Zeichen auf den Bildschirm setzt. Es kopiert es zuerst in den Pufferspeicher. Um etwas auf dem Bildschirm anzuzeigen, müssen Sie den Puffer mit dem Bildschirm synchronisieren. Sie können das mit 'fflush (stdout)' tun, aber Sie können auch ein Zeilenende-Zeichen ("\ n") innerhalb Ihrer Zeichenfolge hinzufügen. Dies liegt daran, dass der Standard-Ausgabepuffer oft automatisch synchronisiert wird, wenn er '\ n' findet. – Logman