Heim  >  Artikel  >  Computer-Tutorials  >  So weisen Sie Dateidaten Strukturvariablen in der Sprache C zu

So weisen Sie Dateidaten Strukturvariablen in der Sprache C zu

王林
王林nach vorne
2024-01-12 15:27:18959Durchsuche

So weisen Sie Dateidaten Strukturvariablen in der Sprache C zu

/*Das angegebene Geschlecht[2] scheint nicht zu 4 Buchstaben zu passen. . . . . . Aber ich verstehe den Sinn der Frage.

**Um die Programmierung zu vereinfachen, habe ich alle Daten in der Struktur in ein Zeichenarray umgewandelt. Wenn Zahlen benötigt werden, fügen Sie einfach einen weiteren Konvertierungsschritt hinzu.** Es ist relativ einfach und ich werde es nicht zusätzlich schreiben Im Body-Array des Programms wird eine Struktur verwendet. Wenn Sie nicht sicher sind, wie viele Zeilen die Datei enthält, können Sie die dynamische Zuordnung verwenden, um Speicher zu sparen. Es wurde in Eile geschrieben und es gibt keine gekapselte Funktion, aber es ist tatsächlich verwendbar, also begnügen Sie sich einfach damit~~~

*/

#include <...>

strukturieren, beschäftigen

{

char id[10];

char name[10];

char sex[5];

char Alter[5];

char edu[10];

char-Lohn[5];

char-Adresse[20];

char number[20];

};

int _tmain(int argc, _TCHAR* argv[])

{

char buf[100];

DATEI* pf=NULL;

Struktur beschäftigen Ep[10]={};

int flag=0;

pf=fopen("employ.dat","r");

if(!pf)

{

printf("Dateiöffnen fehlgeschlagen! n");

System("Pause");

return -1;

}

while(fgets(buf,99,pf))

{

char* pchar=buf;

for(int i=0;i

{

Ep[flag].id[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].name[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].sex[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].age[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].edu[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].wage[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].address[i]=*pchar;

if(*pchar++==',')

Pause;

}

for(int i=0;i

{

Ep[flag].number[i]=*pchar;

if(!*pchar++)

Pause;

}

//printf("%s",buf);

++Flagge;

}

fclose(pf);

System("Pause");

return 0;

}

So verwenden Sie Datenvariablen in TXT-Dateien in C-Sprache

Verwenden Sie die Funktionen fopen und fscanf, um Inhalte aus TXT-Dateien zu lesen und einfache Vorgänge auszuführen.

1.Fopen-Funktionsprototyp: FILE * fopen(const char * path, const char * mode);

Der erste Parameter der fopen-Funktion ist der Dateipfad und der zweite Parameter ist die Öffnungsmethode. Es gibt die folgenden Methoden:

r Öffnen Sie die Datei im schreibgeschützten Modus. Die Datei muss vorhanden sein.

r+ öffnet die Datei zum Lesen und Schreiben, die Datei muss vorhanden sein.

rb+ öffnet eine Binärdatei zum Lesen und Schreiben, sodass Daten gelesen werden können.

rw+ read-write öffnet eine Textdatei und ermöglicht das Lesen und Schreiben.

w Öffnen Sie eine schreibgeschützte Datei. Wenn die Datei vorhanden ist, wird die Dateilänge auf 0 gelöscht, d. h. der Dateiinhalt verschwindet. Wenn die Datei nicht vorhanden ist, erstellen Sie die Datei.

w+ öffnet eine lesbare und beschreibbare Datei. Wenn die Datei vorhanden ist, wird die Dateilänge auf Null gelöscht, d. h. der Dateiinhalt verschwindet. Wenn die Datei nicht vorhanden ist, erstellen Sie die Datei.

a Öffnen Sie schreibgeschützte Dateien im Anhängemodus. Wenn die Datei nicht vorhanden ist, wird die Datei erstellt. Wenn die Datei vorhanden ist, werden die geschriebenen Daten am Ende der Datei hinzugefügt, dh der ursprüngliche Inhalt der Datei bleibt erhalten. (EOF-Zeichen reserviert)

a+ Öffnen Sie Lese-/Schreibdateien im Anhängemodus. Wenn die Datei nicht vorhanden ist, wird die Datei erstellt. Wenn die Datei vorhanden ist, werden die geschriebenen Daten am Ende der Datei hinzugefügt, dh der ursprüngliche Inhalt der Datei bleibt erhalten. (Das ursprüngliche EOF-Symbol bleibt nicht erhalten)

wb Öffnen oder erstellen Sie eine neue Binärdatei nur zum Schreiben; nur das Schreiben von Daten ist zulässig.

wb+ read-write öffnet oder erstellt eine Binärdatei, die das Lesen und Schreiben ermöglicht.

wt+ Lesen und Schreiben Das Öffnen oder Erstellen einer Textdatei ermöglicht das Lesen und Schreiben.

at+ öffnet eine Textdatei zum Lesen und Schreiben und ermöglicht das Lesen oder Anhängen von Daten am Ende des Textes.

ab+ öffnet eine Binärdatei zum Lesen und Schreiben und ermöglicht das Lesen oder Anhängen von Daten am Ende der Datei.

Die oben genannten morphologischen Zeichenfolgen können mit einem b-Zeichen wie rb, w+b oder ab+ und anderen Kombinationen hinzugefügt werden. Das b-Zeichen wird hinzugefügt, um der Funktionsbibliothek mitzuteilen, dass es sich bei der geöffneten Datei um eine Binärdatei und nicht um eine reine Textdatei handelt.

Rückgabewert: Nachdem die Datei erfolgreich geöffnet wurde, wird der Dateizeiger zurückgegeben, der auf den Stream zeigt. Wenn das Öffnen der Datei fehlschlägt, wird NULL zurückgegeben und der Fehlercode in errno gespeichert.

2. Routine:

1

2

3

4

5

6

7

8

9

10

11

12

#include

#define F_PATH "d:\myfile\file.dat"

charc;

intmain(){

FILE*fp=NULL; //Muss aufpassen

fp=fopen(F_PATH,"r");

if(NULL==fp) return-1; //Um einen Fehlercode zurückzugeben

while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //Aus dem Text lesen und auf der Konsole ausdrucken

fclose(fp);

fp=NULL; //Muss auf null zeigen, sonst zeigt es auf die ursprünglich geöffnete Dateiadresse

return0;

}

So liest man eine bestimmte Zeile in einer TXT-Datei in C-Sprache und weist sie einer Variablen zu

Die einfachste Methode besteht darin, Zeile für Zeile zu lesen, aber nur die gewünschte Datenzeile zu erhalten. Unten ist ein einfaches Beispiel, das ich geschrieben habe. Ich habe dreimal Preise gezogen und es gab keine Duplikate.

#include

#include

#include

#define PEOPLE_NUM 10 //Meine Datei enthält 10 Namen

void get_prize(FILE* fp, char Prize_name[])

{

int num;

int i;

fseek(fp, 0, SEEK_SET);

printf("start...n");

num = rand() % PEOPLE_NUM + 1;

for(i = 0; i

{

fgets(prize_name, 32, fp);

}

printf("%s bekommt den Preis!!!n", Preisname);

}

int main()

{

DATEI* fp = fopen("name.txt", "r");

int award_num;

int i;

char-Preisname[32] = {0};

srand(time(0));

for(i = 0; i

{

printf("n");

get_prize(fp, Preisname);

}

fclose(fp);

return 0;

}Die Datei sieht so aus:

So weisen Sie Dateidaten Strukturvariablen in der Sprache C zu

Laufender Screenshot:

So weisen Sie Dateidaten Strukturvariablen in der Sprache C zu

Wenn Sie ein solches Programm schreiben, müssen die Dateien, in denen Sie Namen speichern, ordentlich angeordnet sein, damit das Programm sie problemlos verarbeiten kann. viel Glück.

Das obige ist der detaillierte Inhalt vonSo weisen Sie Dateidaten Strukturvariablen in der Sprache C zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen