Membaca dan Menulis Fail CSV
Hurai fail CSV baris demi baris dan tulis hasil kembali ke cakera.
Membaca dan Menulis Fail CSV ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C++ Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah CSV?
CSV (Nilai Dipisahkan Koma) ialah format jadual teks biasa. Setiap baris ialah satu baris data; koma memisahkan lajur. Format ini ringkas tetapi mempunyai banyak kes khas.
Pengepala Diperlukan
Gunakan fstream untuk fail dan sstream untuk penghuraian.
#include <fstream>
#include <sstream>
#include <string>
#include <vector>Membuka Fail untuk Dibaca
Bina std::ifstream dengan laluan fail. Semak bahawa fail itu berjaya dibuka.
std::ifstream file("data.csv");
if (!file) {
std::cerr << "Cannot open file\n";
return 1;
}Membaca Baris demi Baris
Gunakan std::getline untuk mengulangi setiap baris data.
std::string line;
while (std::getline(file, line)) {
process(line);
}Memisahkan Satu Baris
Gunakan stringstream dan getline dengan pembatas untuk memisahkan setiap baris kepada medan.
std::vector<std::string> split(const std::string& line) {
std::vector<std::string> fields;
std::stringstream ss(line);
std::string field;
while (std::getline(ss, field, ',')) {
fields.push_back(field);
}
return fields;
}Melangkau Pengepala
Baca dan buang baris pertama jika baris itu mengandungi nama lajur.
std::string header;
std::getline(file, header); // discardMenghuraikan Medan Berjenis
Tukarkan medan rentetan kepada nilai berjenis dengan std::stoi atau std::stod.
auto fields = split(line);
int id = std::stoi(fields[0]);
double price = std::stod(fields[2]);Menulis CSV
Gunakan std::ofstream untuk menulis. Alirkan nilai dengan << dan tambahkan koma serta baris baharu.
std::ofstream out("results.csv");
out << "name,score\n";
out << "Ada,95\n";
out << "Bob,82\n";Memetik Medan yang Mengandungi Koma
Jika sesuatu medan mengandungi koma, apit medan itu dengan tanda petikan berganda. Untuk memasukkan tanda petikan di dalam medan, gandakannya.
std::string escape(const std::string& s) {
if (s.find_first_of(",\"\n") == std::string::npos) return s;
std::string r = "\"";
for (char c : s) {
if (c == '"') r += '"';
r += c;
}
return r + "\"";
}Mengendalikan Baris Baharu dalam Medan
Medan yang dipetik boleh merentasi beberapa baris fizikal. Pembaca CSV yang kukuh menjejaki keadaan petikan merentas panggilan getline. Untuk kes mudah, gunakan medan yang tidak merentasi baris.
Menutup Fail
Strim fail ditutup secara automatik apabila dimusnahkan (RAII). Untuk penutupan eksplisit, gunakan file.close() — hanya diperlukan apabila anda mahu menggunakan semula strim tersebut.
Bila Perlu Menggunakan Pustaka
Untuk fail CSV yang kompleks seperti koma yang dipetik, nilai berbilang baris dan pengekodan, gunakan pustaka seperti rapidcsv atau csv-parser. Tulis pelaksanaan sendiri hanya untuk format yang ringkas dan terkawal.
Semakan Ringkas
Apakah teknik yang memisahkan satu baris pada koma dengan hanya menggunakan pustaka piawai?
Rumusan
Baca CSV dengan std::ifstream + std::getline, pisahkan baris dengan stringstream dan pembatas koma, kemudian huraikan medan berjenis dengan std::stoi/stod. Gunakan pustaka sebenar untuk CSV yang kompleks.
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Membaca dan Menulis Fail CSV” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Membaca dan Menulis Fail CSV”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Membaca dan Menulis Fail CSV”?
Hurai fail CSV baris demi baris dan tulis hasil kembali ke cakera. Anda berlatih C++ Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C++ Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C++ Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Membaca dan Menulis Fail CSV” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Membina CLI Kalkulator Ringkas
- Membaca dan Menulis Fail CSV
- Permainan Meneka Nombor
- Pengira Kekerapan Perkataan