Rumah >pembangunan bahagian belakang >C++ >Adakah `if (cin >> x)` merupakan Ungkapan Bersyarat yang Sah dalam C ?

Adakah `if (cin >> x)` merupakan Ungkapan Bersyarat yang Sah dalam C ?

Linda Hamilton
Linda Hamiltonasal
2024-11-22 08:22:10287semak imbas

Is `if (cin >> x)` Ungkapan Bersyarat Sah dalam C ?
> x)` Ungkapan Bersyarat Sah dalam C ? " />

Menilai Kesahihan cin sebagai Ungkapan Bersyarat

Pertimbangkan coretan kod C berikut:

int x;
if (cin >> x) {}

Sesetengah pengaturcara mungkin merasa mengelirukan bahawa keadaan di atas adalah bersamaan dengan:

cin >> x;
if (cin) {}

Memahami mengapa ini berlaku memerlukan melihat lebih dekat sifat cin.

Cin yang membingungkan: Fungsi atau Objek?

Walaupun notasi biasa yang menyerupai panggilan fungsi, cin sebenarnya adalah objek kelas istream mewakili aliran input standard dan sepadan dengan aliran stdin dalam C.

Cin Terlebih Beban Operator

Operator >> terlebih beban untuk strim, ia mengembalikan rujukan kepada strim yang sama.

Penukaran Strim kepada Boolean

Strim boleh mengambil bahagian dalam keadaan boolean melalui operator penukaran yang menilai mereka kepada benar atau salah Ini amat berguna untuk mengesan input ralat.

Jika (cin >> x) - Memecahkannya

Dalam jika (cin >> x), pengendali >> digunakan untuk mengekstrak nilai daripada aliran input cin dan simpannya dalam x. Jika pengekstrakan berjaya, keadaan dinilai kepada benar. Sebaliknya, jika nilai bukan angka dimasukkan, pengekstrakan gagal dan keadaan dinilai sebagai palsu.

Kesimpulan

Oleh itu, jika (cin >> x) ialah memeriksa dengan berkesan sama ada cin berada dalam keadaan yang membenarkan pengekstrakan yang sah. Keadaan ini membolehkan pengaturcara mengendalikan pengesahan input dengan mudah dan bertindak balas dengan sewajarnya.

Atas ialah kandungan terperinci Adakah `if (cin >> x)` merupakan Ungkapan Bersyarat yang Sah dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn