Cách đọc file txt trong c++

  -  
*
It-Pro Training

Xử lý dữ liệu tệp văn bản - Lập trình C : Bài 18


*

Xử lý dữ liệu tệp văn bản - Lập trình C : Bài 18

Xửlý dữ liệu tệp vnạp năng lượng bạn dạng - Lập trình C : Bài 18

1.Giới thiệu

Dữ liệu file văn uống bạn dạng bao gồm một tập phù hợp những chuỗi kýtự cùng vnạp năng lượng bản được tổ chức thành cái. Mỗi loại bao gồm độ dài không giống nhau, con số lớnnhất những kí trường đoản cú trong một cái là 256 ký trường đoản cú. Mỗi mẫu được lưu lại bởi ký từ kếtthúc dòng hay vết xuống mẫu. Trong DOS đó là cặp ký kết trường đoản cú tinh chỉnh CR(CarriageReturn: dancing về đầu chiếc , mã số ASCII = 13, ‘ ’) với LF (Line Feed : Nhảy thẳngxuống loại tiếp theo sau, mã số ASC II = 10, ‘ ’). khi lập trình C chỉ việc dùng‘ ’ là đầy đủ nhằm bí quyết 2 dòng.

Bạn đang xem: Cách đọc file txt trong c++

lấy một ví dụ đoạn văn bạn dạng sau:

Lap Trinc C

123

Ket Thuc

Lúc đó giả dụ xét theo cấu trúc của file vnạp năng lượng bản trongDOS đã nlỗi sau

Lap trinc C CR LF 123 CRLF Ket Thuc EOF

khi lập trình sẵn C thì file *.c là 1 trong những nhiều loại file vnạp năng lượng bảnđược thực hiện để lưu trữ các đoạn mã công tác C.

2.Làm Việc với File văn bản

C cung ứng 4 hàm tiếp sau đây để tiến hành phát âm file văn phiên bản.

+ fscanf()

+ fgets()

+ fgetc()

+ fread()

Với làm việc ghi tệp tin vnạp năng lượng phiên bản. C cung ứng 4 hàm sau

+ fprintf()

+ fputs()

+ fputc()

+ fwrite()

2.1 Hàm putc cùng puts.

2.1.1 Hàm putc()

Hàm putc triển khai ghi một cam kết trường đoản cú vào trong 1 luồn dữ liệuđính thêm cùng với tệp tin. Nếu nói một phương pháp đơn giản thì nó triển khai bài toán ghi tài liệu mộtcharacter vào một trong những file.

Cú pháp:

int putc(int ch, FILE *fp);

Mô tả :

+ch: là ký kết từ ước ao ghi vào vào file

+fp: con trỏ trỏ mang đến File

giá trị trả về hàm putc:

+ Nếu ko lỗi thì trả về chính là ch.

+ Nếu gồm lỗi : trả về EOF (Có cực hiếm là 0).

Code minch họa

*

Hìnhhàng đầu : lấy ví dụ về áp dụng hàm fputc

lúc chạy chương trình tác dụng vẫn ghi dữ liệu ra filetệp tin.txt nhỏng sau

!"#$%&"()*+,-./0123456789:;?
ABCDEFGHIJKLMNOPQRSTUVWXYZ<>^_`abcd

2.1.2 Hàm puts()

Vai trò của hàm puts là ghi xâu kí trường đoản cú (string) vào luồngdữ liệu, luồng dữ liệu này ghắn kết cùng với file. Kết quả hàm thực hiện ghi xâu ký kết tựvào trong tệp tin này.

Cúpháp

charfputs(char *str, FILE *fp);

str: nhỏ trỏ hình dạng char, thực chất nó bao gồm xâu ký kết trường đoản cú

fp:bé trỏ file

Hàmtrả về một cực hiếm không âm trường hợp quá trình ghi file thành công

Nếulỗi hàm sẽ trả về EOF (Có quý hiếm 0).

Vídụ

*

Hìnhsố 2 : Ví dụ về sử dụng hàm fputs

Hàm thực hiện ghi 2 dòng “Ngon đần độn lap trinch C” và“Lam viec voi tệp tin Van Ban” vào tệp tin.txt. vị thực hiện fopen(“file.txt”,”w+”) dovậy ví như tệp tin.txt đang tồn tại thì tiến hành xóa tệp tin này và sản xuất mới file. Ngược lạitrường hợp chưa tồn tại tệp tin.txt thì đang tiến hành chế tác new tệp tin.txt.

Lúc áp dụng fputs(“Ngon dở người Lap trinc C . ”,fp); thìđã ghi xây cam kết từ bỏ “Ngon dở người Lap trinc C” vào file. Kêt thúc loại này là thực hiệnxuống chiếc.

Vậy lúc đó tài liệu sẽ tiến hành ghi vào tệp tin.txt bên trên 2chiếc đơn lẻ.

2.2 Kết thúc tệp tin (EOF – End of File)

Khi thực hiện phát âm file, có tác dụng núm như thế nào để khẳng định đượcquá trình đọc là xong xuôi. Có một cách là phụ thuộc vào kí trường đoản cú đặc biệt quan trọng để ghi lại kếtthúc tệp tin.

Ví dụ

+ Kí từ # được đặt để xác minh dòng cuối cùng

+ Trong DOS thực hiện Ctr-z như là 1 ký kết từ quan trọng nhằm khẳng định ngừng file.

+ Trong UNIX áp dụng Ctr-d như là một trong những cam kết trường đoản cú đặc biệt quan trọng nhằm xác minh ngừng tệp tin.

Xácđịnh kết thúc file

Đôi khi không biết chính xác mất thời hạn bao lâu đểhiểu dữ liệu của một file tính từ bỏ thời gian bước đầu tiến trình đọc tệp tin đến khixong tiến trình gọi file.

Có 2 cách để xác minh chấm dứt một file, Khi phát âm dữ liệufile văn uống phiên bản, quá trình giải pháp xử lý đã hiểu từngkí trường đoản cú một, lúc đó thiết kế viên có thể đọc được kí từ đánh dấu xong tệp tin.

Các hằng số hình tượng EOF được định nghĩa trongstdio.h có giá trị là -1. Lúc tiến hành những hàm đọc dữ liệu tệp tin vnạp năng lượng bạn dạng theophương thức phát âm từng kí tự, thì quy trình gọi được thực hiện cho tới lúc gặp kí tựlưu lại kết thúc file.

Vì tại đây quy trình phát âm được triển khai cho đến Khi gặpkí từ ghi lại hoàn thành tệp tin bắt buộc các thiết kế viên hay thực hiện while hoặcvì - while

while((c= fgetc(fp)) != EOF)

Hàm fgetc(fp) trả về một char, Trong trường hợpfgetc(fp) == EOF thì kết thúc quy trình hiểu tệp tin.

2.3. Các hàm fgetc với fgets

Sử dụng những hàm fgetc cùng fgets ship hàng mang đến quá trình đọctài liệu tự file văn bản.

Xem thêm: Cách Lấy Wifi Không Cần Pass, Cách Truy Cập Wifi Không Cần Hỏi Mật Khẩu

2.3.1 Hàm fgetc

Hàm fgetc() được sử dụng để phát âm một kí từ bỏ từ bỏ dữ liệu từtệp tin văn bạn dạng.

Cúpháp

intgetc(FILE *fp);

đọc một ký tự tự tệp vnạp năng lượng bạn dạng được khẳng định do bé trỏFILE *fp. fp là tđắm say số bề ngoài gồm kiểu con trỏ. fp là tác dụng thực hiện củahàm fopen();

Vậy nguyên do vì sao getc được thực hiện nhằm phát âm từng kí tựcủa FILE và lại có tác dụng trả về là int? Lý vì vậy là lúc thực hiện đọc file,cam kết từ khắc ghi Kết thúc tệp tin (EOF) có giá trị int chứ đọng chưa hẳn char.

Vídụ

Sử dụng hàm getc hiểu tổng thể cam kết trường đoản cú được ghi trongtệp tin.txt khớp ứng cùng với ví dụ hình số 2.

Codeminch họa

*

Hìnhsố 3: Sử dụng hàm fgetc nhằm đọc file

Sử dụng while để khám nghiệm hoàn thành file (EOF) khi thựchiện nay hiểu tệp tin. Kết trái thực hiện in ra được 2 xâu đựng chuỗi ký trường đoản cú.

2.3.2 Hàm fgets

Hàm fgets được thực hiện hiểu xâu kí vào file vnạp năng lượng bản tựtheo loại.

Cúpháp

char*fgets(char *str, int n, FILE *fp);

Môtả

str: Con trỏ char thực chất là string, thực chất là mảng chars

n:số lượng character phệ nhất khi tiến hành gọi, ỏ phía trên đó là kích cỡ của mảngchar

fp:nhỏ trỏ FILE

Hàm đang triển khai giới hạn gọi tệp tin văn bản khi 1 trongnhững ĐK sau đấy là đúng.

+ Đọc được n-1 bytes.

+ Gặp một chiếc mới

+ Đọc lúc gặp mặt kí trường đoản cú xong xuôi tệp tin.

+ Đọc Khi lỗi xuất hiện.

Vídụ

Sử dụng hàm fgets để hiểu file “tệp tin.txt” làm việc ví dụ đượctrình diễn tại hình 2.

Code minc họa

*

Hìnhsố 4: Sử dụng hàm fgets

Lúc áp dụng hàm fgets nhằm đọc nội dung của “tệp tin.txt”,sử dụng while để triển khai gọi từng chiếc dữ liệu text. Và thực hiện in ra kếttrái bởi việc sử dụng hàm printf.

2.3.3Hàm fscanf

Hàm gọi giá trị trường đoản cú tệp văn bản. Hàm này call là hàm hướngngôi trường dữ liệu (field-oriented function). khác lạ của hàm ngày cũng tương tựnhư hàm scanf. Hàm scanf Khi gọi dữ liệu tự bàn phím, nếu như gặp mặt ký trường đoản cú trống thì lậptức nó coi như kí tự phân cách giữa những trường cùng chấm dứt vấn đề hiểu dữ liệu đâylà vấn đề có sự không giống nhau thân hàm scanf và hàm gets.

Ví dụ Hàm scanf

*

Hìnhsố 5 : Hàm scanf

Trong ví dụ trên : Lúc nhập “Programming C with file”,thì câu chữ đọc tin in ra là “Programming” điều đó tức là hàm scanf khigặp gỡ lốt trống chớp nhoáng dứt việc ghi ban bố.

Nếu cố gắng hàm scanf băng hàm gets thì ngôn từ thôngtin sẽ được hiển thị đầy đủ

Code minh họa

*

Hìnhsố 6 : Hàm gets

Tương từ nlỗi fscanf được áp dụng để hiểu tệp tin, lúc gặpdấu trống thì hàm fscanf dẽ coi nó như vệt phân làn giữa các ngôi trường. Vì nó làhàm phía trường dữ liệu vì vậy nó đã xong xuôi quy trình phát âm 1 trường thông tin(1 cột) Lúc gặp gỡ lốt chia cách giữa các trường.

Ví dụ:

Lưu ý Khi hiểu tệp tin vnạp năng lượng bạn dạng, để chắc chắn là chúng ta sử dụnghàm rewind() nhằm tùy chỉnh thiết lập vị trí con trỏ đọc tệp tin về đầu tệp tin.

Xem thêm: Cách Giảm Điện Áp Từ 12V Xuống 3V Rẻ Nhất, Khuyến Mãi Hấp Dẫn

char str<100>;

FILE * fp;

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

fscanf(fp, "%s",str);

printf("Read String |%s| ", str );

khi đó tác dụng in ra chỉ với “Ngon”,

Vậy hàm fscanf nếu gọi các tệp tin văn bản có format duoidạng các cột công bố giỏi các bảng cất tài liệu thì độ hiện tại quả đang rất tốt.