Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya menggunakan perpustakaan standard C untuk input/output (iostream)?
Artikel ini menangani soalan umum mengenai penggunaan c iostreams untuk operasi input dan output.
Perpustakaan Standard C menyediakan perpustakaan iostream
untuk mengendalikan operasi input dan output. Perpustakaan ini menawarkan pendekatan berorientasikan objek tinggi berbanding dengan fungsi C peringkat rendah seperti printf
dan scanf
. Komponen teras adalah aliran, yang mewakili urutan aksara yang mengalir ke atau dari peranti (seperti konsol atau fail).
Penggunaan Asas:
<iostream></iostream>
: #include <iostream></iostream>
.Objek: Aliran standard dipratentukan:
std::cin
: aliran input standard (biasanya papan kekunci).std::cout
: aliran output standard (biasanya konsol).std::cerr
: Stream ralat standard (biasanya konsol, tidak terkawal).std::clog
: Stream Log Standard (biasanya konsol, buffered). ) digunakan untuk output, dan pengendali pengekstrakan ( <code>>>
) digunakan untuk input.
Contoh:
<code class="c ">#include <iostream> #include <string> int main() { std::string name; int age; std::cout > name; std::cout > age; std::cout </string></iostream></code>
Contoh ini menunjukkan input dan output asas menggunakan std::cin
, std::cout
, dan manipulasi rentetan. std::endl
memasukkan watak baru.
Beberapa perangkap biasa boleh membawa kepada tingkah laku atau kesilapan yang tidak dijangka ketika bekerja dengan iostreams:
printf
/ scanf
dengan std::cout
/ std::cin
. Melekat pada satu kaedah secara konsisten untuk kejelasan kod yang lebih baik dan penyelenggaraan.good()
atau !
Operator (yang memeriksa sebarang bendera ralat):<code class="c ">if (!(std::cin >> age)) { std::cerr ::max(), '\n'); }</code>
std::cout
biasanya buffered garis, bermakna output tidak segera dipaparkan sehingga watak baru ( \n
) atau std::flush
ditemui. std::cerr
biasanya tidak terkawal, jadi kesilapan dipaparkan dengan segera. Untuk output segera ke std::cout
, gunakan std::cout .
std::ofstream
atau std::ifstream
menggunakan kaedah close()
atau memastikan ia ditutup secara automatik menggunakan Teknik RAII (Pengambilalihan Sumber adalah Inisialisasi) (misalnya, menggunakan petunjuk pintar atau memastikan mereka keluar dari skop).
) mengabaikan ruang kecil yang terkemuka. Jika anda perlu membaca aksara Whitespace, gunakan std::getline()
.C IOSTREAMS menyediakan cara yang cekap untuk mengendalikan fail I/O:
Output fail:
<code class="c ">#include <fstream> std::ofstream outputFile("my_file.txt"); if (outputFile.is_open()) { outputFile </fstream></code>
Input fail:
<code class="c ">#include <fstream> #include <string> std::ifstream inputFile("my_file.txt"); if (inputFile.is_open()) { std::string line; while (std::getline(inputFile, line)) { std::cout </string></fstream></code>
Pertimbangan Kecekapan:
std::ios_base::sync_with_stdio(false);
Untuk melumpuhkan penyegerakan dengan perpustakaan I/O standard C, yang mungkin menawarkan sedikit keuntungan prestasi dalam beberapa kes. Walau bagaimanapun, berhati -hati kerana ia boleh membawa kepada pesanan output yang tidak dapat diramalkan.std::ios::binary
sebagai bendera dalam pembina aliran fail.std::cin
, std::cout
, dan std::cerr
in c iostreams? std::cin
, std::cout
, dan std::cerr
adalah aliran standard yang telah ditetapkan dalam c iostreams, masing -masing melayani tujuan yang berbeza:
std::cin
(input standard): Aliran ini digunakan untuk membaca input dari peranti input standard, biasanya papan kekunci. Pengendali pengekstrakan (
) digunakan untuk membaca data dari std::cin
.std::cout
(output standard): Aliran ini digunakan untuk menulis output ke peranti output standard, biasanya konsol. Operator penyisipan ( ) digunakan untuk menulis data ke <code>std::cout
. Ia biasanya buffered line.
std::cerr
(Ralat Standard): Aliran ini digunakan untuk menulis mesej ralat ke peranti ralat standard, biasanya konsol. Ia biasanya tidak disengajakan, memastikan mesej ralat dipaparkan dengan serta -merta, tanpa mengira tetapan buffering. Ini penting untuk memaparkan maklumat ralat penting tanpa berlengah -lengah. std::cerr
sering digunakan untuk melaporkan kesilapan dan maklumat diagnostik. Pendek kata: std::cin
membaca input, std::cout
menulis output biasa, dan std::cerr
menulis mesej ralat. Perbezaan dalam tingkah laku penimbal adalah perbezaan utama antara std::cout
dan std::cerr
.
Atas ialah kandungan terperinci Bagaimanakah saya menggunakan perpustakaan standard C untuk input/output (iostream)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!