Maison  >  Article  >  développement back-end  >  Que signifient les différents codes de retour en C++ ?

Que signifient les différents codes de retour en C++ ?

王林
王林original
2024-04-30 15:24:011102parcourir

En C++, les fonctions représentent les résultats des opérations via des codes retour : codes retour courants : 0 (succès), 1 (erreur), -1 (erreur d'opération sur le fichier), NULL (valeur nulle), errno (code d'erreur système) codes retour personnalisés : Défini via des énumérations ou des types personnalisés pour répondre à des besoins spécifiques. Cas pratique : la fonction open_and_read_file() utilise des types d'énumération pour représenter les résultats des opérations sur les fichiers et utilise des instructions switch pour effectuer les actions correspondantes en fonction du code retour.

不同返回码在 C++ 中代表什么?

La signification des différents codes de retour en C++

Dans les programmes C++, les fonctions et les méthodes représentent généralement les résultats ou l'état des opérations via des codes de retour. Ces codes retour peuvent être des entiers, des énumérations, des booléens ou d'autres types personnalisés. Comprendre la signification des différents codes de retour est essentiel au débogage et à la maintenance de votre code.

Codes retour courants

Voici quelques codes retour courants en C++ :

  • 0 : Indique que l'opération a été exécutée avec succès et a atteint l'objectif attendu.
  • 1 : Indique que l'opération n'a pas été exécutée avec succès ou qu'une erreur a été rencontrée.
  • -1: Indique généralement une erreur d'opération de fichier (par exemple, échec d'ouverture ou de fermeture du fichier).
  • NULL : signifie valeur nulle ou pointeur nul.
  • errno: Représente un code d'erreur défini par une fonction système (par exemple, la fonction strerror()).

Codes de retour personnalisés

En plus de ces codes de retour courants, vous pouvez également personnaliser les codes de retour pour répondre aux besoins spécifiques de votre application. Ceci peut être réalisé en définissant une énumération ou en créant votre propre type personnalisé.

Par exemple, dans l'énumération suivante, nous définissons les différents codes retour qu'une opération peut produire :

enum class CustomResultCode {
  Success,
  InvalidArgument,
  ResourceNotFound,
  PermissionDenied,
  InternalError
};

Un cas pratique

Regardons un cas pratique utilisant des codes retour personnalisés. Disons que nous avons une fonction qui essaie d'ouvrir un fichier et de le lire. Le code suivant montre comment utiliser les types d'énumération pour représenter les résultats des opérations :

#include <iostream>
#include <fstream>

using namespace std;

enum class FileOperationResultCode {
  Success,
  FileOpenError,
  FileReadError,
  OtherError
};

FileOperationResultCode open_and_read_file(const string& filename) {
  ifstream file(filename);
  if (!file.is_open()) {
    return FileOperationResultCode::FileOpenError;
  }

  string line;
  while (getline(file, line)) {
    cout << line << endl;
  }

  if (file.bad()) {
    return FileOperationResultCode::FileReadError;
  }

  return FileOperationResultCode::Success;
}

int main() {
  string filename;
  cout << "Enter the filename: ";
  getline(cin, filename);

  FileOperationResultCode result = open_and_read_file(filename);

  switch (result) {
    case FileOperationResultCode::Success:
      cout << "File successfully opened and read." << endl;
      break;
    case FileOperationResultCode::FileOpenError:
      cout << "Error opening the file." << endl;
      break;
    case FileOperationResultCode::FileReadError:
      cout << "Error reading from the file." << endl;
      break;
    case FileOperationResultCode::OtherError:
      cout << "An unknown error occurred." << endl;
      break;
  }

  return 0;
}

Dans cet exemple, l'instruction open_and_read_file() 函数返回一个 FileOperationResultCode 枚举值。我们可以使用 switch effectue différentes actions en fonction du code retour.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn