Comment utiliser CIN et COUT pour l'entrée / sortie en C?
在C++中,cin和cout用于控制台输入输出。1. 使用cout<<进行输出,endl换行并刷新缓冲区,但频繁使用会影响性能,可用\n代替;2. 使用cin>>读取输入,注意类型匹配问题,遇到空格停止;3. 读取含空格字符串时用getline(cin, str);4. 混合使用cin和getline时需清理缓冲区残留字符;5. 输入错误时需调用cin.clear()和cin.ignore()处理异常状态。掌握这些要点可编写稳定的控制台程序。
In C++, cin
and cout
are the standard input and output stream objects used for handling basic input from the keyboard and output to the console. They're part of the <iostream>
library, which you need to include at the top of your program.

Here's how to use them effectively:

How to Use cout
for Output
cout
stands for "character output" and is used with the insertion operator (<<
) to print data to the console.
For example:

#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
- The
<<
operator sends whatever comes after it to the output stream. endl
adds a newline character and flushes the buffer — useful when you want immediate output (like during debugging).- You can chain multiple outputs in one line:
cout << "Name: " << name << ", Age: " << age;
Pro tip: If performance matters and you're printing a lot, avoid using endl
too often since flushing the buffer repeatedly can slow things down. Just use "\n"
instead for faster output.
How to Use cin
for Input
cin
stands for "character input" and is used with the extraction operator () to get input from the user.
Basic usage:
int age; cout << "Enter your age: "; cin >> age;
- Make sure the variable type matches what the user is expected to enter. If you ask for an integer but the user types a string, that will cause an error state in
cin
. cin
stops reading as soon as it encounters whitespace, so if you want to read full sentences or strings with spaces, usegetline(cin, string_variable)
instead.
A few gotchas:
- If the input doesn't match the expected type, the program may behave unexpectedly.
- After a failed input, you'll need to clear the error flag and remove the bad input from the buffer:
cin.clear(); // clears the error flags cin.ignore(numeric_limits<streamsize>::max(), '\n'); // skips invalid input
Mixing cin
and getline
When switching between numeric/string input with cin
and full-line input with getline
, be careful — leftover characters in the input buffer can cause issues.
For example:
int age; string name; cout << "Enter your age: "; cin >> age; cout << "Enter your name: "; getline(cin, name);
This often skips the name input because cin >> age
leaves a newline in the buffer, and getline
reads it immediately.
Fix it by clearing the newline before calling getline
:
cin.ignore(); // ignores one character (usually the leftover '\n') // Or more safely: cin.ignore(numeric_limits<streamsize>::max(), '\n');
Summary and Final Notes
- Always include
<iostream>
to usecin
andcout
. - Use
<<
withcout
for output, andwith
cin
for simple input. - For strings with spaces, prefer
getline(cin, myString)
. - Be cautious mixing
cin
andgetline
— leftover newlines can cause bugs. - Handle invalid input gracefully, especially in real-world programs where users might not follow instructions perfectly.
基本上就这些。掌握好基础用法,再注意输入输出的常见问题,就能写出稳定的小型控制台程序了。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











L'objet Slice fait référence au phénomène selon lequel une partie des données de classe de base est copiée lors de l'attribution ou du passage d'un objet de classe dérivé à un objet de classe de base, entraînant la perte de nouveaux membres de la classe dérivée. 1. Les tranches d'objet se produisent dans des conteneurs qui attribuent directement des valeurs, passent les paramètres par valeur ou stockent des objets polymorphes dans les classes de base de stockage; 2. Les conséquences incluent la perte de données, le comportement anormal et difficile à déboguer; 3. Éviter les méthodes incluent le passage d'objets polymorphes à l'aide de pointeurs ou de références, ou à utiliser des pointeurs intelligents pour gérer le cycle de vie de l'objet.

RAII est une technologie importante utilisée dans la gestion des ressources dans C. son cœur réside dans la gestion automatique des ressources tout au long du cycle de vie de l'objet. Son idée principale est: les ressources sont acquises au moment de la construction et libérées à la destruction, évitant ainsi les problèmes de fuite causés par la libération manuelle. Par exemple, lorsqu'il n'y a pas de RAII, l'opération de fichier nécessite un appel manuellement à l'appel. S'il y a une erreur au milieu ou un retour à l'avance, vous pouvez oublier de fermer le fichier; Et après avoir utilisé RAII, comme la classe FileHandle résume l'opération de fichier, le destructeur sera automatiquement appelé après avoir quitté la portée pour libérer la ressource. 1.RAII est utilisé dans la gestion des verrouillage (comme STD :: Lock_Guard), 2. Management de la mémoire (comme STD :: UNIQUE_PTR), 3. Base de données et gestion de la connexion réseau, etc.

Il existe de nombreuses méthodes d'initialisation en C, qui conviennent à différents scénarios. 1. L'initialisation de la variable de base inclut l'initialisation de l'attribution (inta = 5;), l'initialisation de construction (inta (5);) et l'initialisation de la liste (inta {5};), où l'initialisation de la liste est plus stricte et recommandée; 2. C 11 prend également en charge l'initialisation directe au sein de la classe; 3. L'initialisation du tableau et du conteneur peut être utilisée en mode traditionnel ou C 11 de C 11 :: Array et STD :: Vector, prise en charge la liste d'initialisation et améliorer la sécurité; 4. Initialisation par défaut

Le trading à haute fréquence est l'un des domaines les plus riches en fin de compte et à forte intensité de capital sur le marché des devises virtuelles. Il s'agit d'une concurrence sur la vitesse, les algorithmes et la technologie de pointe que les acteurs du marché ordinaires sont difficiles à impliquer. Comprendre son fonctionnement nous aidera à avoir une compréhension plus approfondie de la complexité et de la spécialisation du marché actuel des actifs numériques. Pour la plupart des gens, il est plus important de reconnaître et de comprendre ce phénomène que de l'essayer vous-même.

L'opérateur de bits en C est utilisé pour exploiter directement des bits binaires d'entiers, et convient à la programmation de systèmes, au développement intégré, à l'optimisation des algorithmes et à d'autres champs. 1. Les opérateurs de bit communs incluent le sens bit et (&), le sens bit 2. Utilisez le scénario Gestion de drapeau, fonctionnement du masque, optimisation des performances et algorithmes de chiffrement / compression. 3. Les notes incluent la distinction des opérations de bits des opérations logiques, d'éviter les déplacements droits dangereux vers les nombres signés et de ne pas utiliser sur la lisibilité. Il est également recommandé d'utiliser des macros ou des constantes pour améliorer la clarté du code, faire attention à l'ordre de fonctionnement et vérifier le comportement par le biais de tests.

Le destructeur en C est une fonction de membre spécial qui est automatiquement appelée lorsqu'un objet est hors de portée ou est explicitement supprimé. Son objectif principal est de nettoyer les ressources qu'un objet peut acquérir pendant son cycle de vie, telles que la mémoire, les poignées de fichiers ou les connexions réseau. Le destructeur est automatiquement appelé dans les cas suivants: Lorsqu'une variable locale quitte la portée, lorsqu'une suppression est appelée sur le pointeur, et lorsqu'un objet externe contenant l'objet est détruit. Lorsque vous définissez le destructeur, vous devez ajouter ~ avant le nom de classe, et il n'y a pas de paramètres et de valeurs de retour. Si non défini, le compilateur génère un destructeur par défaut, mais ne gère pas les versions de mémoire dynamique. Les notes incluent: chaque classe ne peut avoir qu'un seul destructeur et ne prend pas en charge la surcharge; Il est recommandé de définir le destructeur de la classe héritée à Virtual; Le destructeur de la classe dérivée sera d'abord exécuté puis appelé automatiquement.

Pour déterminer si STD :: Facultatif a une valeur, vous pouvez utiliser la méthode has_value () ou juger directement dans l'instruction if; Lors du retour d'un résultat qui peut être vide, il est recommandé d'utiliser STD :: Facultatif pour éviter les pointeurs et exceptions nuls; Il ne doit pas être abusé, et les valeurs de retour booléen ou les variables de bool indépendantes conviennent plus à certains scénarios; Les méthodes d'initialisation sont diverses, mais vous devez faire attention à l'utilisation de réinitialisation () pour effacer la valeur et faire attention au cycle de vie et au comportement de construction.

Il existe deux façons principales de générer des nombres aléatoires dans C. 1. La fonction RAND () en utilisation doit être utilisée pour définir la graine avec SRAND (), mais le hasard est médiocre; 2. Il est recommandé d'utiliser la bibliothèque C 11 pour obtenir une génération de nombres aléatoires de meilleure qualité via Random_Device, MT19937 Engine et objets de distribution. Soyez prudent pour éviter le réglage répété des graines, éviter la plage de contrôle de moulage direct et hiérarchisez les bibliothèques modernes pour assurer la cohérence multiplateforme et la qualité aléatoire.
