Cách đọc tệp văn bản và in tất cả các chuỗi trong C

Cach Doc Tep Van Ban Va In Tat Ca Cac Chuoi Trong C



Đọc một tệp văn bản và in tất cả dây là một nhiệm vụ quan trọng thường xuyên được thực hiện bởi các lập trình viên C. Điều quan trọng là phải hiểu những điều cơ bản của đọc Một tập tin văn bản trong C và làm thế nào để in các dây từ nó trước khi thử nhiệm vụ này.

Việc đọc một tệp văn bản và in tất cả các chuỗi chứa trong đó sẽ được trình bày bằng lập trình C trong bài viết này.







Đọc tệp văn bản và in tất cả các chuỗi trong C

Có bốn hàm để đọc tệp văn bản và in tất cả các chuỗi trong C, như sau:



Cách 1: Hàm fread()

dữ liệu là đọc từ tập tin và được lưu trữ trong bộ đệm bằng hàm C sợ hãi() . Để đếm các phần tử trong bộ đệm mảng, sợ hãi() phương thức đọc từ luồng đầu vào được cung cấp dưới dạng tham số chức năng. Khi mỗi chức năng ký tự đọc, chỉ báo vị trí tệp cho luồng đầu vào được chỉ định sẽ di chuyển về phía trước.



Các sợ hãi() phương thức trong C có cú pháp.





size_t fread ( khoảng trống * mảng_buffer, size_t kích cỡ , size_t đếm, TỆP * tập hồ sơ )

Hãy xem xét chi tiết hơn các tham số của hàm fread():



bộ đệm mảng: Dữ liệu tạm thời được giữ trong bộ đệm của máy tính, một không gian bộ nhớ. Đối số này là một con trỏ đề cập đến vị trí trong bộ nhớ của bộ đệm sẽ chứa dữ liệu đọc từ luồng đầu vào.

kích cỡ: Đối số này hướng dẫn hàm về số lượng byte dữ liệu sẽ được đọc từ luồng đầu vào cho mỗi khối.

đếm: Nó chỉ định có bao nhiêu ký tự sẽ được đọc từ luồng dữ liệu đầu vào.

tập hồ sơ: Nó là một con trỏ tham chiếu đến một đối tượng FILE.

#include
#include
int chính ( ) {
TÀI LIỆU * tài liệu ;
bộ đệm char [ 100 ] ;
tài liệu = fopen ( 'C_File.txt' , 'r' ) ;
nếu như ( tài liệu == NULL ) {
bản inf ( 'Lỗi: không thể mở tệp \N ' ) ;
trở lại 1 ;
}
int đếm = sợ hãi ( & bộ đệm, sizeof ( than ) , 100 , tài liệu ) ;
fđóng ( tài liệu ) ;
bản inf ( 'Dữ liệu được đọc từ tệp là: %s \N ' , đệm ) ;
bản inf ( 'Số phần tử đã đọc: %d' , đếm ) ;
fđóng ( tài liệu ) ;
trở lại 0 ;
}

Trong ví dụ này, chúng tôi định nghĩa một bộ đệm mảng ký tự có kích thước 100 trước khi sử dụng fopen() để mở tệp văn bản C_File.txt ở chế độ đọc. Sử dụng câu lệnh if, chúng tôi xác định xem tệp đã được mở thành công hay chưa. Bước tiếp theo là đọc đến 100 byte dữ liệu từ tệp bằng cách sử dụng sợ hãi() . Bộ đệm đích, trong trường hợp này là mảng bộ đệm, là tham số đầu tiên để sợ hãi(). Lập luận thứ hai, kích thước của , xác định kích thước của từng mục sẽ được đọc khi chúng ta đọc ký tự . Đầu vào thứ ba là số lượng cần đọc, trong trường hợp này là 100 . Các con trỏ tập tin là tham số thứ tư. Cuối cùng, chúng tôi sử dụng printf() để in dữ liệu đã đọc từ tệp và fclose() để đóng tập tin. Chạy chương trình này sẽ cho kết quả như thế này, nếu C_File.txt :

đầu ra

Cách 2: Hàm fgets()

ngôn ngữ C fgets() phương thức đọc n ký tự từ luồng vào chuỗi str. Các fgets() phương thức tiếp tục đọc các ký tự từ luồng cho đến khi (n-1) các ký tự đã được đọc, một ký tự xuống dòng đã được phát hiện hoặc đã đạt đến cuối tệp (EOF).

#include
int chính ( ) {
TÀI LIỆU * tài liệu ;
bộ đệm char [ 100 ] ;
tài liệu = fopen ( 'C_File.txt' , 'r' ) ;
nếu như ( tài liệu == NULL ) {
bản inf ( 'Lỗi: không thể mở tệp \N ' ) ;
trở lại 1 ;
}
trong khi ( fgets ( đệm, 100 , tài liệu ) ) {
bản inf ( 'Chuỗi được đọc từ tệp: %s' , đệm ) ;
}
fđóng ( tài liệu ) ;
trở lại 0 ;
}

Ví dụ này sử dụng fopen() để mở một tệp văn bản có tên C_File.txt ở chế độ đọc sau lần đầu tiên khai báo bộ đệm mảng ký tự có kích thước 100 . Sử dụng câu lệnh if, chúng tôi xác định xem tệp đã được mở thành công hay chưa. Sau đó, chúng tôi sử dụng vòng lặp while và fgets() để đọc các dòng văn bản từ tệp bằng con trỏ tệp. sử dụng printf() trong vòng lặp, chúng tôi in từng dòng văn bản. Chạy chương trình này sẽ cung cấp đầu ra:

đầu ra

Cách 3: Hàm fscanf()

Một phương pháp thư viện tiêu chuẩn được gọi là fscanf() chấp nhận một mảng các tham số và chuyển đổi chúng thành các giá trị mà ứng dụng của bạn có thể sử dụng. Trong khi đọc từ tập tin , nó sẽ trả về chuỗi định dạng thay cho bất kỳ thứ gì mà nó dự đoán sẽ thấy bên trong. Để ngăn phần mềm của bạn diễn giải chuỗi định dạng như một phần của cú pháp riêng, nó phải được đặt trong dấu ngoặc kép (“”).

#include
int chính ( ) {
TÀI LIỆU * tài liệu ;
int số1, số2, số3;
tài liệu = fopen ( 'C_File.txt' , 'r' ) ;
nếu như ( tài liệu == NULL ) {
bản inf ( 'Lỗi: không thể mở tệp \N ' ) ;
trở lại 1 ;
}
fscanf ( tài liệu , '%d %d %d' , & số 1, & số2, & số 3 ) ;
bản inf ( 'Các số được đọc từ tệp là: %d, %d, %d \N ' , số1, số2, số3 ) ;
fđóng ( tài liệu ) ;
trở lại 0 ;
}

Ví dụ này mở tệp C_File.txt ở chế độ đọc bằng cách khai báo lần đầu 3 biến int là num1, num2 và num3. Sử dụng câu lệnh if, chúng tôi xác định xem tệp đã được mở thành công hay chưa. Bước sau đây là đọc ba số từ tệp bằng cách sử dụng fscanf() %d định dạng định dạng. Các biến num1, num2 và num3 là nơi lưu giữ các giá trị. Cuối cùng, chúng tôi sử dụng printf() để xuất các giá trị của các biến này và fclose() để đóng tập tin. Chạy chương trình này sẽ được kết quả như hình bên dưới:

đầu ra

Cách 4: Hàm fgetc()

Một tập tin có thể được đọc từng ký tự bằng cách sử dụng fgetc() chức năng. Mã ASCII cho ký tự mà hàm này đọc được hàm này trả về. Ký tự từ vị trí đã chỉ định của con trỏ tệp được trả về. Ký tự sau được đọc khi ký tự đã được đọc, theo con trỏ tệp. Phương thức này trả về tệp EOF nếu con trỏ ở cuối tệp hoặc nếu có sự cố.

#include
int chính ( ) {
TÀI LIỆU * tài liệu ;
ký tự c;
tài liệu = fopen ( 'C_File.txt' , 'r' ) ;
nếu như ( tài liệu == NULL ) {
bản inf ( 'Lỗi: không thể mở tệp \N ' ) ;
trở lại 1 ;
}
trong khi ( ( c = fgetc ( tài liệu ) ) ! = EOF ) {
bản inf ( '%c' , c ) ;
}
fđóng ( tài liệu ) ;
trở lại 0 ;
}

Trong trường hợp này, chúng tôi sử dụng fopen() lệnh mở tệp văn bản C_File.txt ở chế độ đọc. Sử dụng câu lệnh if, chúng tôi xác định xem tệp đã được mở thành công hay chưa. Sau đó, chúng tôi sử dụng vòng lặp while và fgetc() để đọc các ký tự từ tập tin. Ký tự nhận được từ tệp được gán cho biến c bên trong vòng lặp trước khi được in bằng cách sử dụng inf(). Vòng lặp tiếp tục chạy cho đến khi EOF Hằng số (End of File) phát hiện phần cuối của tệp. Chạy chương trình này sẽ nhận được kết quả sau, nếu C_File.txt chứa từ 'Linuxint'.

đầu ra

Phần kết luận

Bằng cách sử dụng các bước nêu trên, C có thể được sử dụng để đọc một tập tin văn bản in tất cả các chuỗi Nó chứa. Nó bắt đầu bằng cách sử dụng fopen() cuộc gọi hệ thống để mở tệp, tiếp theo là sử dụng của fscanf(), fread(), fgets(), fgetc() để đọc dữ liệu. Sau đó, tệp được đóng lại bằng cách sử dụng fclose() và một vòng lặp for được sử dụng để in các chuỗi. Bằng cách sử dụng các kỹ thuật này, C có thể được sử dụng để giúp đọc và in dữ liệu một cách hiệu quả.