Heim >Backend-Entwicklung >C#.Net-Tutorial >Detaillierte Erklärung und Beispielcode für die C-Sprachdateioperationsanalyse

Detaillierte Erklärung und Beispielcode für die C-Sprachdateioperationsanalyse

黄舟
黄舟Original
2016-12-14 17:25:141347Durchsuche

Analyse von Dateioperationen in C-Sprache

Neben Öffnungsoperationen und Lese- und Schreiboperationen gibt es bei Dateioperationen noch mehrere weitere gängige Operationen. Die an diesen Vorgängen beteiligten Funktionen werden im Folgenden vorgestellt.

1. Funktionen, die den Positionszeiger bewegen

Rücklauffunktion und fseek-Funktion, die Prototypen dieser beiden Funktionen sind:

void rewind(FILE *fp); Move the Positionszeiger Zum Anfang der Datei bewegen

int fseek(FILE *fp,long int offset,int origin); Bewegen Sie den Positionszeiger auf die Position der Offset-Bytes vom Ursprung

Unter anderem ist für die Parameter in der fseek-Funktion der Ursprung der Startpunkt und der Offset die Offset-Bytes vom Ursprung

Ursprung Es gibt drei Werte: SEEK_SET(0)->Anfang der Datei, SEEK_CUR(1)->aktuelle Position, SEEK_END(2)->Ende der Datei.

Hinweis: 1) Wenn die Datei im Anhängemodus geöffnet wird, funktionieren diese beiden Funktionen beim Schreiben nicht. Unabhängig davon, wohin der Positionszeiger verschoben wird, werden die hinzugefügten Daten immer am Ende der Datei angehängt.

2. Andere häufig verwendete Funktionen

1. ftell-Funktion

long int ftell(FILE *fp);

Berechnen Sie den Abstand zwischen der aktuellen Position Zeiger und der Anfang der Datei. Anzahl der Bytes. Wenn ein Fehler auftritt, wird -1L zurückgegeben.

Verwenden Sie die ftell-Funktion, um die Dateigröße zu berechnen.

2.feof function

int feof(FILE *fp);

Erkennt, ob der aktuelle Positionszeiger das Ende der Datei erreicht Datei, es gibt einen Wert ungleich Null zurück, andernfalls wird 0 zurückgegeben.

3.ferror function

int ferror(FILE *fp);

Erkennt, ob während der Dateioperation ein Fehler auftritt, ein Wert ungleich Null zurückgegeben, andernfalls wird 0 zurückgegeben

4.remove function

int remove(const char *filename);

Löscht die Datei, wenn der Löschvorgang erfolgreich ist, wird sie zurückgegeben 0, andernfalls wird ein Wert ungleich Null zurückgegeben

5.rename function

int rename(const char *oldname,const char *newname);

Die Datei umbenennen, Gibt 0 zurück, wenn die Umbenennung erfolgreich ist, andernfalls wird ein Wert ungleich Null zurückgegeben.

6.freopen-Funktion

FILE* freopen(const char *filename, const char *mode,FILE *stream);

Realisiert Eingabe und Ausgabe. Diese Funktion wird häufig beim Testen von Daten verwendet.

7.fclose function

int fclose(FILE *stream);

Schließt einen Stream, wenn er erfolgreich ist, gibt er 0 zurück, andernfalls gibt er -1 zurück Paar Der Stream muss nach Abschluss des Dateivorgangs geschlossen werden, da sonst ein Datenverlust auftreten kann.

Testprogramm:

#include<stdio.h>
#include<stdlib.h>
  
int main(void)
{
  freopen("input.txt","r",stdin);
  freopen("output.txt","w+",stdout);
  int i;
  int a[10];
  for(i=0;i<10;i++)
  {
    scanf("%d",&a[i]);
  }
  for(i=0;i<10;i++)
  {
    printf("%d\n",a[i]);
  }
  return 0;
}

Angenommen, input.txt existiert bereits im Projektverzeichnis und die Daten in der Datei sind 1 2 -1 3 4 5 7 8 9 10. Nach der Ausführung müssen keine Daten über die Konsole eingegeben werden. Das Programm liest die Daten direkt aus input.txt und gibt die Ergebnisse dann an Output.txt aus, ohne die Ergebnisse direkt an die Konsole auszugeben.

Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn