Xin chào, và chào mừng trở lại.
Trong bài giảng này, tôi muốn cung cấp một minh chứng về thách thức đầu
tiên của chúng tôi đối với việc đọc từ một tệp.
Chúng ta sẽ đếm số lượng các dòng bên trong tệp bằng cách sử dụng fgetc.
Vì vậy, hãy đưa ra các khối mã, và hãy tạo dự án của chúng tôi.
Ở đây, chúng tôi sẽ nói dự án
mới và nó sẽ là một căn chỉnh đọc cơ bản.
Vì vậy, giả sử ứng dụng bảng điều khiển chọn c, và chúng tôi sẽ đặt tên cho số dòng
cơ bản hoặc đếm này như thế nào về số lượng dòng.
Và vì vậy điều này sẽ tạo ra chính của chúng tôi. c nào là tốt.
Trước khi chúng tôi bắt đầu ứng dụng này tuy nhiên, chúng tôi thực sự muốn tạo tệp của mình có
một số văn bản trong đó.
Vì chúng tôi không viết, chúng tôi chỉ đọc với số dòng.
Vì vậy, bạn phải biết nơi bạn đã lưu dự án của mình.
Tôi đang lưu các dự án của mình bên trong của thư mục tải xuống của tôi.
Và khi bạn tạo một dự án mới bên trong thư mục tải xuống của bạn, bạn
chuyển đến tên dự án đó.
Tên dự án của tôi là đếm số dòng.
Vì vậy, bên trong số lượng dòng, tôi có chính của tôi. c tệp.
Tôi có thể tạo tệp của mình ngay trong thư mục này.
Vì vậy, tôi chỉ đi đúng nhấp vào bên trong thư mục
và tôi sẽ nói mới và tôi sẽ tạo một tệp văn bản.
Đây là một tài liệu văn bản mới, và nó sẽ được thử nghiệm. chữ.
Tôi sẽ mở nó ra.
Bạn có thể mở trong bất kỳ biên tập viên, đây là wordpad.
Nó sẽ đưa vào vài dòng, xin chào.
Điều này sẽ được thử nghiệm cho kế toán, được rồi, a, chỉ là một loạt các dòng và
sau đó bạn muốn lưu và đóng nó lại.
Bây giờ tôi đã tạo tệp của mình, tôi có thể thực sự bắt đầu thực hiện một cái gì đó.
Điều đầu tiên tôi muốn làm là tôi muốn tạo
một biến không đổi cho tên tệp.
Vì vậy, tôi sẽ chỉ sử dụng định nghĩa.
Điều này sẽ đại diện cho tên tệp của tôi.
Tôi sẽ chỉ nói tên tệp trong tất cả viết hoa và điều này sẽ tương đương với
bất cứ điều gì tôi vừa đặt tên cho nó, một lần nữa là thử nghiệm. văn bản, do đó, thử nghiệm. chữ.
Và tất cả mã của tôi đang hoạt động là chức năng chính của tôi.
Tôi muốn tạo con trỏ tệp của mình.
Hãy nhớ rằng, để tạo một con trỏ tệp, bạn chỉ cần sử dụng tất cả các FILE viết hoa, sau đó nói dấu sao
và sau đó bạn có thể chỉ cần nói fp.
Và tôi sẽ khởi tạo nó thành null.
Bất cứ khi nào bạn đọc tệp và viết, bạn phải chắc chắn rằng
bạn bao gồm lib chuẩn. h.
Tôi cũng sẽ tạo một đĩa đơn ký tự sẽ được sử dụng.
Tôi chỉ nói char, và sau đó tôi sẽ tạo bộ đếm cho
tất cả các dòng của mình.
Tôi sẽ nói số dòng int.
Và tôi sẽ khởi tạo nó thành 0.
Điều đầu tiên bạn cần làm khi bạn thực hiện bất kỳ loại đọc
nào từ các tệp, bạn phải mở nó lên.
Vậy hàm f mở là sẽ trả về một con trỏ tệp.
Vì vậy, tôi muốn gán nó cho biến fp và tôi muốn
nói f mở và tên của tệp tên mà tôi đã xác định là một
hằng số, tên tệp.
Và tôi muốn mở ra để đọc và chỉ đọc nên tôi chỉ nói r.
Vì vậy, ở đây tôi muốn làm fopen với tên tệp là hằng số của tôi và sau đó r trong dấu ngoặc
kép đó là chế độ của chúng tôi.
Tôi muốn chỉ đọc.
Tôi không muốn viết.
Nếu tôi đã cộng r, tôi cũng sẽ viết.
Trước khi chúng tôi sử dụng con trỏ, con trỏ đại diện cho tệp.
Tôi muốn chắc chắn rằng con trỏ không bằng null, vì vậy tôi
muốn thực hiện một f.
Tôi muốn nói fp bằng null.
Sau đó, nếu nó bằng null, tôi chỉ muốn hiển thị một lỗi để đổi lại.
Vì vậy, tôi muốn làm một cái gì đó như tệp printf không tồn tại, bạn muốn làm
gì thì làm.
Và điều này sẽ xảy ra sau đó.
Chúng tôi chỉ muốn quay trở lại một âm 1 từ hàm của chúng ta.
Sau khi chúng tôi đã mở tệp, bây giờ chúng tôi thực sự có thể bắt
đầu đọc các ký tự, vì vậy chúng tôi có thể viết một vòng lặp while và chúng tôi muốn nói trong khi ký tự
của chúng tôi, đó là một ký tự bằng fgetc.
Fgetc đang đọc một ký tự.
Chúng tôi chuyển vào con trỏ tệp của mình và về cơ bản chúng tôi muốn nói rằng chúng tôi
muốn đọc các ký tự cho đến khi chúng tôi nhìn thấy một eof.
Vì vậy, chúng tôi nói cho đến khi nó không bằng eof.
Sau đó, chúng tôi sẽ nhảy ra khỏi vòng lặp của chúng tôi, một cái gì đó như thế này.
Vì vậy, chúng ta sẽ đọc bằng các ký tự cho đến khi chúng ta đi đến cuối tệp.
Miễn là nhân vật của chúng ta không một nguồn cấp dữ liệu dòng, chúng tôi muốn chỉ tăng lên khi chúng tôi nhìn thấy một
nguồn cấp dữ liệu dòng.
Vì vậy, chúng ta sẽ nói nếu nhân vật của chúng ta bằng một nguồn cấp dữ liệu dòng, sau đó về cơ bản chúng ta
muốn tăng bộ đếm của mình.
Chúng tôi chỉ muốn nói rằng số dòng cộng với Thêm vào đó, điều đó sẽ tính đến các dòng của chúng tôi.
Và sau đó chúng tôi nhảy ra khỏi vòng lặp khi chúng ta đến cuối tệp.
Nhưng chúng tôi chỉ giới thiệu tài khoản nếu chúng tôi nhận được một nguồn cấp dữ liệu dòng.
Điều cuối cùng bạn luôn muốn làm sau khi bạn đọc xong bài viết của mình là bạn muốn
đóng tệp của mình.
Vì vậy, bạn muốn nói fclose và sau đó chuyển vào con trỏ tệp.
Và sau đó chúng tôi cũng muốn thiết lập con trỏ tệp của chúng tôi bằng null.
Và sau đó chúng tôi có thể in ra số dòng mà chúng tôi chạy.
Vì vậy, chúng ta chỉ có thể nói tổng số printf số dòng r phần trăm d dấu gạch chéo ngược n và sau đó chúng ta
có thể đặt số dòng.
Và sau đó chỉ cần trở về từ chính, cứ như vậy.
Vì vậy, một lần nữa để xem lại mã này, chúng tôi tạo con
trỏ tệp của chúng tôi, đặt nó thành null, tạo một ký tự và cục bộ biến để đếm các dòng.
Chúng tôi mở tệp của mình ở dòng 12.
Chúng tôi mở nó ở chế độ chỉ để đọc.
Chúng tôi đảm bảo rằng nó không rỗng và sau đó chúng tôi thực hiện vòng lặp while để
đọc từng ký tự cho đến khi chúng tôi đang ở cuối tệp.
Mỗi khi chúng tôi thấy một nguồn cấp dữ liệu dòng, chúng tôi tăng bộ đếm đó.
Và sau đó chúng tôi đóng tệp của mình và đặt con trỏ của chúng tôi thành null.
Và sau đó chúng tôi in ra số dòng.
Hãy tiếp tục và xây dựng cái này.
Và chúng tôi có thêm một dòng nguồn cấp dữ liệu, chúng tôi muốn đảm bảo.
Vì vậy, tôi muốn đảm bảo rằng chúng tôi không quên dấu phẩy trong printf của chúng ta.
Và bây giờ chúng tôi chạy nó, nó sẽ đọc từ tệp của chúng tôi mà chúng tôi đã tạo và
cho chúng tôi biết chúng tôi có bao nhiêu dòng.
Vì vậy, nó cho biết tổng số trong số các dòng là sáu.
Nếu chúng ta mở tệp văn bản của mình, chúng ta nên chú ý rằng có sáu dòng, một,
hai, ba, bốn, năm, sáu.
Thực tế là có bảy.
Vì vậy, chúng tôi sẽ phải tăng cuối cùng cho đến khi chúng tôi nhận được eof.
Vì vậy, đây là một lỗi nhỏ ở đây nơi chúng tôi chỉ nói vì điều này đang thực hiện nguồn
cấp dữ liệu dòng cuối cùng của chúng tôi trước khi chúng tôi nhấn vào cuối tệp.
Vì vậy, bạn thực sự muốn có đây là một nữa và sau đó chúng tôi sẽ chạy nó và nó sẽ thực sự
hoạt động.
Vì vậy, trong trường hợp này, chúng tôi sẽ thêm một vài dòng.
Và trong trường hợp này, chúng ta nên có một, hai, ba, bốn,
năm, sáu, bảy, tám, chín dòng.
Chúng tôi đóng tệp.
Chúng tôi chạy lại, biên dịch nó, và chúng ta sẽ có được chín.
Trong trường hợp này, chúng tôi nhận được 9.
Vì vậy, tôi sẽ lưu mã nguồn này.
Bạn có thể tải xuống.
Đây là điều cơ bản của việc đọc dữ liệu từ một tệp bằng fgetc.
Bạn cũng muốn trở thành quen thuộc với đồ dùng.
Và sau đó để định dạng đầu ra, bạn có thể sử dụng fscanf để đọc ở đầu ra được định dạng.
Tôi hy vọng nó sẽ có ích. Cảm ơn bạn.