Was ist eine alternative von scanf in C/Linux?

... komplette Frage anzeigen

4 Antworten

Ich nehme an, dass im Falle von Linux die C-Libs nicht zu dem erzeugten Code passen. Nimmt z.B. der Compiler an, das Zielsystem hätte 32 bit, dann ist das zweite Argument von scanf() ein 32bit Pointer. Wird dann eine Lib dazu gebunden, die einen 64bit Pointer erwartet, wird es zu einem Adressfehler kommen, und natürlich auch umgekehrt.

Ich arbeite schon lange nicht mehr mit C bzw. Linux, kann also nicht schnell nachvollziehen, ob eine Mischung verschiedener Architekturen bezüglich Source und Lib vom Linker überhaupt akzeptiert wird.

Ist also nur eine Vermutung. Am Source erkenne ich jedenfalls keine Fehler.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ralphdieter
14.11.2016, 11:22

Bestätigt: Der Code compiliert bei mir unter Ubuntu Trusty mit:

 gcc -std=c99 -ansi -Wall -Wextra -Wpedantic 

und läuft astrein.

An scanf() liegt es also sicher nicht...

@frankenstein: Welche Meldung kommt denn beim Absturz?

1

abgesehen davon, dass x nicht deklariert ist, gibt es keinen Fehler. So wie du es geschrieben hast, wird es mit c++  ( g++-4.8) ohne Fehler kompiliert und a.out stürzt auch nicht ab.

Installiere den Compiler einfach noch einmal.

 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von guenterhalt
14.11.2016, 12:51

noch eine Bemerkung:

hast du die Code-Datei  von deinem Windows-PC?
Windows benutzt eine andere Zeilen-Ende-Kennung.
mit 0d0a statt 0d habe ich schon die merkwürdigsten Fehler erhalten.
Dumm dabei ist, man sieht das nicht mit jedem Editor. Erst mit ghex konnte ich das nachweisen.

(float x = 0; außerhalb des Codes hatte ich übersehen)

0

So sieht die Fehlermeldung aus nachdem ich das Programm beendet habe.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von frankstein350
14.11.2016, 12:09

Main aber bitte nicht berücksichtigen. Da hab ich nur etwas versucht, diese ist normal leer.

0

Hat es da nicht mal sowas wie 'inputf()' gegeben?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von frankstein350
14.11.2016, 11:35

Danke für die Info, hab danach mal gesucht aber leider kaum was gefunden.

0

Was möchtest Du wissen?