Was ist fseek () in der C-Programmierung?

Beste Antwort

Beschreibung

Die C-Bibliotheksfunktion int fseek (DATEI * -Stream, langer int-Offset, int woher) legt die Dateiposition von Stream zum angegebenen Offset .

Deklaration

Es folgt die Deklaration für die Funktion fseek ().

int fseek(FILE *stream, long int offset, int whence)

Parameter

  • stream – Dies ist der Zeiger auf ein FILE-Objekt Dies identifiziert den Stream.
  • offset – Dies ist die Anzahl der Bytes, von denen versetzt werden soll.
  • woher – Dies ist die Position, von der aus der Versatz hinzugefügt wird. Es wird durch eine der folgenden Konstanten angegeben:

Konstante

Beschreibung

SEEK\_SET

Beginn der Datei

SEEK\_CUR

Aktuelle Position des Dateizeigers

SEEK\_END

Dateiende

Rückgabewert

Diese Funktion gibt bei Erfolg Null oder einen Wert ungleich Null zurück.

Beispiel

Das folgende Beispiel zeigt die Verwendung der Funktion fseek ().

#include

int main ()

{

FILE *fp;

fp = fopen("file.txt","w+");

fputs("This is tutorialspoint.com", fp);

fseek( fp, 7, SEEK\_SET );

fputs(" C Programming Language", fp);

fclose(fp);

return(0);

}

Lassen Sie uns das obige Programm kompilieren und ausführen, das cr aß eine Datei file.txt mit dem folgenden Inhalt. Das Programm erstellt zunächst die Datei und schreibt Dies ist Tutorials für Java-Parallelität, Spring AOP, Gerrit, Spring MVC, Apache Solr, Excel Power View, Sencha Touch, Tex-Befehle, Agiles Testen, Apache Tajo, C ++ – Bibliothek, MariaDB, SAP QM, SAP SOLMAN, SAP SCM, MS Access, KoaJS, OAuth2.0, Scrapy, SAP CCA, SAP PM, SAPUI5, Cognos, Internet der Dinge, Ländliches Marketing, Trampolin, Golf, CakePHP, SAP EWM, Web-Dynpro, Angular2, Framework7, Arduino, CherryPy, Firebase, SAP C4C, SAP Dashboard , SAP PI, ExpressJS, Design Thinking, Internetsicherheit, PyGTK, Apache Drill, Excel-Diagramme, Elastische Suche, Computersicherheit, extreme Programmierung, verhaltensgesteuerte Entwicklung, Optimierung der Conversion-Rate, SAP-Basis, Wirtschaftsrecht, Kanban, Erlang, SAP Payroll, ASP.Net WP, PouchDB, MFC, SAP HR, Yii, Clojure, Aurelia, CoffeeScript, CPanel, Laravel, SAP Webi, MS SQL Server, pinterest, Indian Polity, Teradata, Windows 10 aber später hatten wir den Schreibzeiger von Anfang an auf die 7. Position zurückgesetzt und die Anweisung put () verwendet, die die Datei mit dem folgenden Inhalt überschreibt –

This is C Programming Language

Lassen Sie uns nun den Inhalt der obigen Datei mit dem folgenden Programm anzeigen –

#include

int main ()

{

FILE *fp;

int c;

fp = fopen("file.txt","r");

while(1)

{

c = fgetc(fp);

if( feof(fp) )

{

break;

}

printf("\%c", c);

}

fclose(fp);

return(0);

}

Lassen Sie uns das obige Programm kompilieren und ausführen, um das folgende Ergebnis zu erzielen –

This is the C Programming Language

Antwort

Personen prägen die erste Lösung ein, die für sie funktioniert.

Eine schlechte Form, die irgendwie Ergebnisse erzielt, ist Das Schwierigste für einen Trainer, seinen Sportler zu „verlernen“. Das Problem ist, dass der Athlet einen Teil des Weges bekommt, dann mit der schlechten Technik gegen eine Wand stößt und eine schreckliche Zeit damit hat, die richtige Form neu zu lernen.

Das Programmieren ist auch so, aber je nach Flexibilität etwas einfacher der Gedanken des Programmierers und die Demut ihrer Einstellung zu der Idee, dass sie vielleicht nicht alles wissen, was es darüber zu wissen gibt.

Oft ist das Erlernen einer Sprache am Anfang wie das Aufnehmen von Glanz rockt am Strand und geht „wow hübsch“ und steckt es in die Tasche. Ziemlich bald haben wir eine Tasche voller Steine, die wir herumtragen, und denken, wir wissen alles über Geologie.

Aber ein Programmierer muss mehr wissen als nur, wie cool ein Sprachwerkzeug ist.

C ist eine gute Grundlage, um die Teile eines Computersystems zu kennen und die Teile zu einem Programmierziel zusammenzusetzen. Es ist auch hella schnell, so dass die Tatsache das Urteil trübt, so dass jede Problemdomäne wie eine C-Lösung aussieht, wäre der beste, schnellste, logischste Ansatz. Dies sind Ihre „C-Gewohnheiten“, und das ist in Ordnung für Problemdomänen, die einen schrittweisen, byteorientierten, gerätezentrierten Ansatz erfordern. C funktioniert gut mit der einzelnen Variablen. Die meisten C-Programme jonglieren mit einigen unabhängigen Variablen und arbeiten nacheinander, wobei die meisten mit jedem Programmstatus in einigen eigenständigen Variablen gespeichert sind. Jede Aussage, jede Änderung wird auf atomarer Ebene geplant und gesteuert, oder es wird jeweils eine einzelne Funktion berücksichtigt. Jeder Speicherblock wird einzeln manuell und sorgfältig berücksichtigt.

C ++ ist jedoch stärker auf das Systemdesign ausgerichtet und betont die Objektinteraktion. Daten sind wie üblich König, aber aktive Objekte sind die Art und Weise, wie Daten generiert und verarbeitet werden. Alles, was Sie zuvor von C gelernt haben, ist weiterhin gültig, aber beim Entwerfen von Software geht es um Objekte, Objektstatus und Schnittstellen.

Menschen können sich ändern – sie schreiben weniger Briefe und senden mehr E-Mails, verwenden Ihre Telefone für mehr Dinge und ihr Desktop-PC für weniger Zeit, wenn die Zeit vergeht (aber ihr Telefon ähnelt jeden Tag mehr ihrem PC…).

Wenn Sie C-ähnlichen Code in C ++ schreiben, versuchen Sie es zu sehen Wenn es eine objektorientiertere API gibt, die dasselbe mit weniger Code tun würde. Ohne Erfahrung ist es schwer zu erkennen, wo OO-Methoden über prozedurale Methoden hinausgehen, aber viele wirklich kluge Leute haben herausgefunden, dass OO-Entwurfsmuster in großen Systemen Zeit sparen und später nacharbeiten. C ++ ist der Mittelweg, auf dem Sie die Vorteile haben, sowohl in der Byte-Schnittstellendomäne als auch in der objektorientierten Schnittstellendomäne problemlos zu arbeiten.

Lernen Sie die STL. Verwenden Sie es, und Sie werden sehen, wie die OO-Ideen und die von ihm geförderte Philosophie der Objektschnittstelle den direkten prozeduralen Ansatz von C ersetzen. Behalten Sie diese abgenutzten C-Fähigkeiten jedoch in Ihrer Gesäßtasche, da sie Ihnen manchmal gute Dienste leisten. P. >

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.