Rumah >Tutorial perisian >Perisian Pejabat >Cara membaca dua baris data aksara antara permulaan dan akhir dalam dokumen TXT dalam bahasa C

Cara membaca dua baris data aksara antara permulaan dan akhir dalam dokumen TXT dalam bahasa C

WBOY
WBOYke hadapan
2024-01-09 08:34:13792semak imbas

Cara membaca data antara dua baris aksara dalam dokumen TXT dalam bahasa C, seperti antara permulaan dan akhir

Andaikan struktur fail ialah: 1E1F 0309 luan7 8 zao

2E2F 1518

mulakan

12 39692

12 39712

9 39724

akhir

mulakan

14 39692

8 39724

akhir

luan7 8 zao

qi qi guai guai

mulakan

312 39692

142 39712

95 39724

akhir

Mengandungi berbilang keping data permulaan, tamat

#include #include

utama( ) {

FAIL *sirip;

int a[1000],b[1000],n=0,i;

char one_line[80];

fin=fopen("abc.txt","r");

jika (fin==NULL){printf("fail terbuka errorn");kembali 0;}

Makmal1:semasa(1){

jika ( fgets(satu_baris,80,sirip)==NULL){

printf("Tidak dapat memulakan dana lagi");goto Lab2;}

jika (strncmp(satu_baris,"mulakan",5)==0)pecah;

}

untuk (i=0;i

jika (strncmp(satu_baris,"akhir",3)==0)pecah;

sscanf(one_line,"%d %d",&a[n],&b[n]);

n++;

}

goto Lab1;

Makmal2: fclose(sirip);

printf("Saya baca:n");for (i=0;return 0;

}

Apa yang perlu dilakukan jika koma bertitik digunakan untuk mengekstrak data daripada txt menggunakan bahasa C

fgets membaca setiap baris data dan kemudian menggunakan strchr untuk mencari kedudukan tempat koma bertitik muncul, dan kemudian melakukan penukaran yang sepadan!

Ini adalah contoh yang saya tulis untuk membaca rentetan yang ditentukan Anda boleh merujuk kepada ini dan mengubah suainya kepada fungsi nombor titik terapung

#include

#include

#define N 10

int readstr(const char* str,char p[][128],int plen,int savepos);

int main()

{

char str[]="2012/10/12;123456.0;456123.0";

char date[N][128]={0};

int len=readstr(str,tarikh,N,0);

untuk (int i=0;i {

printf("%sn",tarikh[i]);

}

kembali 0;

}

int readstr(const char* str,char p[][128],int plen,int savepos)

{

jika(plen {

printf ("Array terlalu kecil, sila tukar lokasi storan!"

kembali 0;

}

statik int len=0;

char *find=strchr(str,';');

jika(cari==NULL)

{

strcpy(p[savepos],str);

len++;

kembali len;

}

lain

{

strncpy(p[savepos],str,find-str);

len++;

readstr(cari+1,p,N,len);

}

kembali len;

}

Cara membaca baris data seterusnya rentetan yang ditentukan dalam txt menggunakan bahasa C

Gunakan fgets untuk membaca baris dan sscanf untuk membaca lajur pertama data

Yang berikut menganggap bahawa lajur pertama data digunakan sebagai rentetan, dan dibaca menggunakan format sscanf(buf,"%s",....

Begitu juga, gunakan %d untuk integer dan %f %lf untuk mata terapung....

#include

#include

utama(){

char buf[100];

char col[100][30];

int n=0;

FAIL *fp = fopen("a.txt", "r");

sementara ( fgets(buf, 100, fp) != NULL) {

jika (sscanf(buf,"%s",col[n]) == 1){printf("%sn", col[n] };

}

kembali 0;

}

Jika anda ingin membaca nombor pertama setiap baris, (hanya baca satu digit, gunakan format %1d):

int x[100];

...

sementara ( fgets(buf, 100, fp) != NULL) {

jika (sscanf(buf,"%1d",&x[n]) == 1){ printf("%dn",x[n]);n++;};

Atas ialah kandungan terperinci Cara membaca dua baris data aksara antara permulaan dan akhir dalam dokumen TXT dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam