2017-06-02 4 views
-1

Ich habe ein Programm erstellt, um Zeilennummern an die Textdatei anzufügen, die als Argument an das Programm übergeben wurde. yyin funktioniert gut, aber yyout funktioniert nicht, d. h. Inhalte werden aus der angegebenen Datei gelesen, aber nichts wird in die Ausgabedatei geschrieben, stattdessen wird die Ausgabe auf der Konsole angezeigt.yyout (LEX) -Option funktioniert nicht in Fedora?

Jede Hilfe wird sehr geschätzt.

Program Screenshot

Output Screenshot

+1

Bitte geben Sie Ihr Programm und die Ausgabe als Text in der Antwort, anstatt Screenshots mit externen Links. – Pyves

Antwort

1

Wenn Sie yyout ausgegeben werden soll, warum verwenden Sie printf?

(F) Lex ändert nicht magisch den Betrieb der Standardbibliothek. printf weiterhin auf stdout, gemäß seiner Dokumentation gedruckt. Wenn Sie die Ausgabe auf yyout wollten, würden Sie

fprintf(yyout, ...); 

Flex nur yyout verwendet in seiner eigenen ECHO Aktion verwenden, die die Standardaktion für jeden unerreichten Text ist, und welche können Sie explizit in der Regel verwenden. Zum Beispiel könnten Sie diese Aktion geschrieben haben als:

Verwandte Themen