new line bei scanf *HELP (C)

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Wissenslücke
Beiträge: 37
Registriert: Mo Feb 22, 2016 6:03 pm

new line bei scanf *HELP (C)

Beitrag von Wissenslücke » Di Mär 08, 2016 8:12 pm

hallo liebe community,

nach der Anweisung scanf wollte ich durch new line ein wenig Abstand zur Antwort schaffen. Nur leider will das Programm nach einer Zahl noch ein ?Buchstaben? bzw ein Wort bevor man mit Enter weiter kommt.
Ohne new line bei scanf funktioniert es, nur ohne schöne Leerzeile ;(
Hat jemand Rat ?

Gruß WL
#include <stdio.h>
#include <math.h>

double celsius2fahren(double TCelsius);
double celsius2fahren(double TCelsius) {

double TFahrenheit = (( TCelsius* 9 ) / 5 ) + 32;

return TFahrenheit;

}

int main () {

double a;
printf("Herzlich wilkommen im Celsius-Fahrenheit-Umrechner.\n\nBitte geben Sie eine Celsius-Temperatur an:");
scanf(" %lf \n\n" ,&a);
printf("%lf Celsius sind umgerechnet %lf Grad Fahrenheit. ",a,celsius2fahren(a));
return 0;
}

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: new line bei scanf *HELP (C)

Beitrag von Xin » Di Mär 08, 2016 8:50 pm

Bitte in scanf keine sonstigen Zeichen erwarten!
Am besten nur erwarten, was Dir bekannt ist, das auch kommt.

Kurz: verwende scanf im Idealfall so wenig wie möglich.

Besser: übergib die Zahl als Programmparameter. Wie das geht steht hier im C-Tutorial. Bin mi'm Händi online, daher heute kein Link. ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: new line bei scanf *HELP (C)

Beitrag von cloidnerux » Mi Mär 09, 2016 10:15 am

Hier der Link zum Wiki-Eintrag
https://www.proggen.org/doku.php?id=c:f ... :parameter

Soweit ich weiß ist der Formatstring bei scanf nicht zur Ausgabe gedacht, sondern um deine Eingabe zu formatieren.
Wenn du newlines ausgeben willst, musst du printf nutzen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Wissenslücke
Beiträge: 37
Registriert: Mo Feb 22, 2016 6:03 pm

Re: new line bei scanf *HELP (C)

Beitrag von Wissenslücke » Mi Mär 09, 2016 3:41 pm

Danke für die Antworten. Die new line bei scanf hatte ich auch nur weil ich wollte, dass der blinkende Unterstrich direkt hinter dem Doppelpunkt der Aufforderung steht. Bei printf new line steht der Unterstrich in der nächsten Zeile. Aber ich schätze mit printf oder scanf hat man später sowieso nichts mehr am Hut.

LG WL

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: new line bei scanf *HELP (C)

Beitrag von Xin » Mi Mär 09, 2016 3:46 pm

Nimm printf für die Ausgabe ohne \n. Die Ausgabe ist gepuffert. Um den Puffer zu leeren schau Dir fflush an. Dann hast Du, was Du suchst.
Mit Newlones in scanf vermute ich, dass Du Dir das Antwortverhalten unerklärlich machst.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten