สวัสดีและยินดีต้อนรับ.
ในการบรรยายครั้งนี้ ฉันต้องการ ให้คำตอบกับความท้าทายครั้งก่อนของเรา
ซึ่งก็คือการเปลี่ยนใจเลื่อมใส ไฟล์ที่มีตัวพิมพ์เล็กไปยังไฟล์ที่ มีตัวพิมพ์ใหญ่
ในระหว่างนี้เราจะสร้าง ไฟล์ temp ดังนั้นเราจะต้องเปลี่ยนชื่อและลบเป็นต้น
และผลลัพธ์สุดท้ายสำหรับ โปรแกรมจะเป็นไฟล์.
เราจะไปอ่านกันในไฟล์ว่า ถูกแปลงเป็นตัวพิมพ์ใหญ่แล้ว
เลยเอาโค้ดมา บล็อกสร้างโครงการ
จะบอกว่าโปรเจ็คใหม่คอนโซล โปรแกรมไป
c และนี่จะเรียกว่าการแปลงไฟล์ตัวพิมพ์เล็ก
เรากำลังจะไป ให้สิ่งนี้เป็นหลักของเรา ค.
เราต้องการให้แน่ใจว่าเราสร้าง ส่วนหัว io มาตรฐานของเราเพราะเรากำลังจะอ่านและเขียน
และใช้ fopen เป็นต้น
สิ่งที่ชอบทำมาตลอดคือ สร้างไฟล์ตรงหน้า
ต่อไปนี้ฉันจะนิยาม ค่าคงที่สำหรับชื่อไฟล์ของฉัน
ให้เรียกว่านิยามนี้
และครั้งนี้เราจะเรียกการทดสอบ ข้อความ.
แล้วเราจะบอกว่า ชื่อไฟล์เป็นตัวพิมพ์ใหญ่ทั้งหมด
ฉันชอบทำอนุสัญญานั้น
แล้วฉันจะไปจริงๆ สร้างชื่อไฟล์ในโครงการของเรา
อีกครั้ง ฉันเก็บไฟล์ของฉัน ภายในไดเร็กทอรีดาวน์โหลดของฉัน
นั่นคือที่ทั้งหมดของฉัน โครงการจะถูกเก็บไว้
และในกรณีนี้ เรามีโครงการ เรียกว่าการแปลงไฟล์ตัวพิมพ์เล็ก
ฉันจะทำให้มันถูกต้อง ในไดเร็กทอรีเดียวกัน
ดังนั้นฉันสามารถเรียกใช้จาก IDE
ฉันจะสร้างไฟล์ข้อความใหม่
ฉันจะตั้งชื่อการทดสอบนี้ ข้อความ.
และฉันจะยกมันขึ้นมา และผมจะใส่อักขระตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
สมมุติว่าเจสันกำลังทดสอบ ตกลง, ไม่ว่าการทดสอบใดเป็นตัวพิมพ์ใหญ่บางตัวเป็นตัวพิมพ์เล็กที่
ผลลัพธ์สุดท้าย สิ่งเหล่านี้จะเป็นตัวพิมพ์ใหญ่เสมอ
ความท้าทายอีกอย่างหนึ่ง
เราจะไปที่นั่น.
ผลสุดท้ายของสิ่งนี้ กำลังจะทำการทดสอบไฟล์ txt ที่มีตัวพิมพ์ใหญ่ทั้งหมดนี้
แต่เราจะเก็บมันไว้กับ ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กบางตัว
ตอนนี้เราได้สร้างไฟล์ของเราแล้ว ตอนนี้เราสามารถอ่านและเขียนได้แล้ว
ฉันจะสร้างไฟล์คู่ พอยน์เตอร์พร้อมไฟล์ ไฟล์ตัวพิมพ์ใหญ่ทั้งหมด
และฉันจะบอกว่า star fp
ฉันจะเริ่มต้นสิ่งนั้น เป็นโมฆะแล้วฉันจะสร้างตัวชี้ไฟล์อื่น
star fp1 และเท่ากับ null
ฉันต้องการสองที่นี่อีกครั้งเพราะ ฉันกำลังจะทำการอ่านและเขียนแยกไฟล์
ไฟล์ temp เป็นหลัก
ฉันจะสร้างตัวละครด้วย ตัวแปร ซึ่งจะเป็นตัวอักษรที่เราอ่านโดยใช้
fgetc
และฉันจะปล่อยให้มันเท่ากัน เป็นโมฆะเช่นกันหรือดีกว่า
ฉันจะปล่อยสตริงว่างไว้
สิ่งแรกที่ฉันต้องทำคือฉัน ต้องเปิดไฟล์ในโหมดอ่านสำหรับไฟล์แรกซึ่งก็คือ
fp และ ไฟล์ที่สองจะเป็นไฟล์ชั่วคราว
ผมจะบอกว่า fp เท่ากับ fopen
ฉันจะใช้ การทดสอบชื่อไฟล์ ข้อความ.
ชื่อไฟล์แล้วฉันจะไป ที่จะเปิดให้อ่านอย่างเดียว
แล้วก็อยากทำ แน่ใจว่านี่เป็นโมฆะ
ฉันจะบอกว่าถ้า fp เท่ากับ null,
แล้วผมจะคืนค่าลบ 1
จากนั้นฉันต้องการสร้างไฟล์ temp ของฉัน
ดังนั้นฉันจะไป สร้างไฟล์ชั่วคราว
และในกรณีนี้ฉันจะไป เปิดไฟล์สำหรับเขียน
ดังนั้นฉันจะใช้ตัวชี้ fp1 ของฉัน และฉันจะบอกว่า fopen
ตัวนี้พี่จะโทรไป อุณหภูมิ ข้อความ มันจะสร้างขึ้นหากไม่มีอยู่
แล้วฉันจะใส่ ตัว w เพราะผมจะเขียนลงไป
เขียนอย่างเดียว
อีกครั้งที่อยากทำ นี่คือฉันต้องการให้แน่ใจว่า
fp1 ไม่เท่ากับ null
ดังนั้นฉันจะบอกว่า fp1
ถ้ามันเท่ากับ null ฉันก็แค่ จะส่งกลับค่าลบ
ตอนนี้ฉันเปิดไฟล์สองไฟล์ หนึ่งสำหรับการอ่าน หนึ่งสำหรับการเขียน
การเขียนสำหรับไฟล์ temp
และสิ่งที่ฉันต้องการจะทำต่อไปคือฉันต้องการ เพื่อเริ่มอ่านจากไฟล์แล้วเขียนตัวพิมพ์ใหญ่ทั้งหมด
เลยอยากจะเพิ่ม a while loop เข้าไปที่ อ่านแล้วอยากจะบอกว่าในขณะที่ข้อมูลตัวละครชนิด
ch เท่ากับ fgetc และฉันต้องการอ่านจากการทดสอบของฉัน
ข้อความดังนั้น fp และฉันต้องการทำสิ่งนี้ จนผมไปไม่ถึงจุดสิ้นสุดของไฟล์
ผมบอกได้เลยว่าไม่เท่ากับ eof
Eof เป็นค่าคงที่พิเศษ
ภายในวง while ของฉันฉันต้องการ ตรวจสอบว่าอักขระที่ฉันกำลังอ่านเป็นตัวพิมพ์เล็กหรือไม่
ดังนั้นฉันอยากจะบอกว่าถ้าเป็น ch ที่ต่ำกว่า ถ้าฉันพบตัวพิมพ์เล็ก
ฉันก็เลยต้องการตั้งค่า ตัวอักษรที่จะเป็นตัวพิมพ์ใหญ่
ผมก็บอกได้ ch เท่ากับ ch ลบ 32
สิ่งนี้จะแปลงตัวละคร เป็นตัวพิมพ์ใหญ่
หลังจากที่ผมแปลงแล้ว ไม่ว่าจะแปลงหรือไม่ก็ตาม เป็นตัวพิมพ์ใหญ่หรือไม่
แล้ว I ต้องการเขียนลงในไฟล์ temp ของฉัน
ในที่นี้ผมบอกได้เลยว่า fputc
และฉันสามารถพูดได้ว่าตัวละครของฉัน ที่ฉันต้องการเขียนและตัวชี้ไฟล์ซึ่งเป็น
fp1
ดังนั้นทุกครั้งที่ฉันอ่านตัวละคร ฉันกำลังเขียนลงในไฟล์ temp ของฉัน
และถ้าเป็นตัวพิมพ์เล็กฉันกำลังแปลง ให้เป็นตัวพิมพ์ใหญ่แล้วจึงเขียน
ดังนั้นจุดสิ้นสุดของ while loop นี้คือ ฉันมีไฟล์
temp ที่มีอักขระทั้งหมดจาก ทดสอบ. ข้อความที่มีตัวพิมพ์ใหญ่
เสร็จแล้วทั้งสองอย่าง ไฟล์เหล่านั้นที่อ่านและเขียน
ดังนั้นฉันสามารถพูดได้ว่า fclose fp และ fclose fp1
ฉันต้องการเปลี่ยนชื่อชั่วคราวของฉัน ไฟล์เพื่อทดสอบของฉัน ไฟล์ข้อความ
ตรงนี้ผมบอกได้แค่ว่าเปลี่ยนชื่อ เรียกใช้ฟังก์ชันเปลี่ยนชื่อและฉันสามารถพูดได้ว่า
temp. ข้อความ นั่นคือสิ่งที่ฉันต้องการเปลี่ยนชื่อ
และสิ่งที่ฉันต้องการ เปลี่ยนชื่อคือการทดสอบ ข้อความหรือใช้ค่าคงที่ของฉันซึ่งเป็นชื่อไฟล์
ฉันยังคงสร้างไฟล์ temp ไว้
ฉันต้องการลบไฟล์ temp
เลยเอาไฟล์ temp ออก
ที่นี่ฉันสามารถเรียกเอาออก ทำงานและส่งผ่านในอุณหภูมิ ข้อความ.
แล้วสิ่งสุดท้ายที่ฉันต้องการ
สิ่งที่ต้องทำคือฉันต้องการพิมพ์เนื้อหาของการทดสอบของฉัน ไฟล์ข้อความซึ่ง จะถูกแปลงเป็นตัวพิมพ์ใหญ่
แทนที่จะปิด fp เพราะ ที่ชี้ไปที่การทดสอบ ข้อความ ฉันไม่สามารถปิดได้ในขณะนี้
ฉันสามารถ แค่ปิด fp1 เพราะ fp1 เป็นอุณหภูมิ
ข้อความและนั่นคือ ฉันกำลังเปลี่ยนชื่อและลบ
ที่จริงฉันต้องปิด เพราะฉันเปลี่ยนชื่อมัน
ดังนั้นฉันจะต้องปิด fp
ตอนนี้ในบรรทัดที่ 43 ฉันต้องการเปิดใหม่ fp เพราะตอนนี้ฉันต้องการอ่านเนื้อหาและพิมพ์ออกมา
ดังนั้นฉันสามารถพูดชื่อไฟล์ fp fopen หรือ ขออภัยชื่อไฟล์และฉันต้องการอ่าน
ผมก็เลยจะบอกว่า r
อีกครั้งฉันต้องการทำ แน่ใจว่าไม่ใช่โมฆะ
และถ้ามันเท่ากับ null. ฉันต้องการกลับ
และฉันแค่อยากจะบอกว่า ส่งกลับค่าลบหนึ่ง
ฉันสามารถพิมพ์อินพุตบางส่วน
แล้วที่นี่ฉันต้องการอ่าน ข้อมูลและเพียงแค่พิมพ์ออกมา
ดังนั้นฉันจึงสามารถทำอย่างอื่นในขณะที่วนซ้ำได้
เรายังไม่ได้พิมพ์อะไรเลย ดังนั้น
เราควรจะบอกว่าในขณะที่ ch เท่ากับ fgetc fp และไม่เท่ากับ eof
และสิ่งที่เราอยากทำก็คือเรา แค่อยากพิมพ์ ch.
เราก็บอกว่า เปอร์เซ็นต์ c ch, แล้วเราก็เสร็จแล้ว
และอีกครั้งในตอนท้ายเรา ต้องการปิดไฟล์สุดท้ายซึ่งเป็น fp และเราต้องการตั้งค่า
fp เท่ากับ เป็นโมฆะและ fp1 เท่ากับโมฆะ
มาทำให้แน่ใจว่าสิ่งนี้สร้าง
งั้นเราไปกันเลยดีกว่า
เราสามารถคอมไพล์ใส่เซมิโคลอน ในบรรทัดที่ 54 ฉันมีเครื่องหมายทวิภาคอยู่ที่นั่น
ดังนั้นถ้าเราย้อนกลับไป ด้วยรหัสนี้ เราสร้างตัวชี้ไฟล์สองสามตัว
เรามีค่าคงที่ของเรา
เราเปิดไฟล์ขึ้นมาหนึ่งไฟล์
เราอ่านจากมัน
และในขณะที่เรากำลังอ่าน เรา เขียนลงในไฟล์ temp
จากนั้นเราจะลบไฟล์ temp
เราต้องลบทั้งไฟล์ เรากำลังอ่านจากไฟล์ temp เพราะเราต้องเปลี่ยนชื่อและลบ
เราไม่สามารถเรียกเปลี่ยนชื่อหรือลบใน ฟังก์ชั่นหรือไฟล์ที่เปิดอยู่แล้วเราจึงต้องปิดมัน
ดังนั้นแล้วเราจะเปิดอีกครั้งและ เราพิมพ์ข้อมูล
ดังนั้นเราจึงดำเนินการนี้
เราควรเห็นผลลัพธ์ด้วย ข้อมูลตัวละครทั้งหมดจาก
เมื่อเรารันโปรแกรมนี้ สิ่งที่เราจะเห็นคือมันพิมพ์ทุกอย่างด้วยตัวพิมพ์ใหญ่
อีกครั้งที่เราเรียกใช้มันพิมพ์ ออกทุกอย่างเป็นตัวพิมพ์ใหญ่
ถ้าเราดูไฟล์บน ดิสก์ เราสามารถดูที่การทดสอบ ข้อความและเราจะสังเกตเห็นว่าตอนนี้
มีทุกอย่างเป็นตัวพิมพ์ใหญ่
อีกครั้งถ้าเราต้องการเปลี่ยนสิ่งนี้ และเปลี่ยนตัวพิมพ์เล็กเพิ่มเติม
เราเลยบันทึกไว้ที่นี่เป็นตัวพิมพ์เล็ก เรารันโปรแกรมและมันแปลงทุกอย่างเป็นตัวพิมพ์ใหญ่
อีกครั้ง ถ้าเราเรียกใช้สิ่งนี้ พิมพ์ออกมาเป็นตัวพิมพ์ใหญ่
เราดูแล้วมันเป็นตัวพิมพ์ใหญ่ทั้งหมด
โปรแกรมเล็กๆ ดีๆ ทั้งนั้น ที่จะแปลงอักขระตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
ค่อนข้างตรงไปตรงมาเรา โดยใช้ฟังก์ชันที่สำคัญของเราที่นี่
ซึ่งก็คือไฟล์พอยน์เตอร์ fopen
แล้วเราก็ใช้ nice fclose ลบและเปลี่ยนชื่อ
แล้ว fopen และ fgetc
ถ้าคุณมีคำถามใด ๆ, กรุณาส่งอีเมลฉัน
ฉันจะบันทึกไฟล์ต้นฉบับนี้เป็น zip file มาให้ชมกันครับ
ขอขอบคุณ.