www.mikrocontroller.net

Forum: FPGA, VHDL & Co. scanf in NIOS


Autor: Holzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich versuche etwas aus NIOS in der console einzulesen und bekomme 
folgende Fehlermeldung "undefined reference to `scanf'".
printf("Bitte geben Sie eine Zahl ein : ");
scanf("%d",&state);      /* Wartet auf die Eingabe */
printf("Die Zahl die Sie eingegeben haben war %d\n",state);

habe auch die stdio.h eingebunden!

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Holzi,

stdio.h stellt nur den Compiler zufrieden, die Meldung kommt aber vom 
Linker. Welches Tools setzt Du denn überhaput ein? IDE, SBT, Version?

Grüße,
Harald

Autor: Holzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich benutze NIOS 2 die 9er Version mit Quartus!

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NIOS II 9.0 IDE? Das nehm ich auch. Und bei mir geht scanf() problemlos. 
Wie hast Du denn das Projekt aufgesetzt? Welches Template hast Du 
verwendet? Wie sind die Einstellungen der syslib? Lass Dir doch nicht 
alles aus der Nase ziehen! Schreib mal mindestens 10 Zeilen über dein 
Problem.

Grüße,
Harald

Autor: Holzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe soeben die Antwort gefunden. Ich habe die small Library als 
Option eingstellt und genau daran lag es. Nachdem der Hacken raus war, 
funktioniert dies jetzt einwandfrei.
Jetzt habe ich nur ein Problem, dass scanf immer beim Einlesen auf eine 
Eingabe wartet. Dies möchte ich jedoch nicht! Wie kann ich das umgehen?

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja, ich würde dir raten, mal etwas Literaturstudium zu den 
verfügbaren Bibliotheksfunktionen zu betreiben. Die NIOS IDE bietet die 
Newlib C Library, und da gibt es meines Wissens kein kbhit(). Vielleicht 
mit getchar() die Zeichen abholen, in einen Puffer schreiben, und dann 
sscanf auf den Puffer loslassen. Oder auch anders. Erwarte bitte nicht, 
dass ein Forum dir das Lernen erspart.

Grüße,
Harald

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.