Je le code suivant:Int32 non déclaré dans ce cadre
//Comp454 program 2
#include <iostream>
#include <string>
#include <fstream> // file I/O support
#include <cstdlib> // support for exit()
const int SIZE = 60;
int main()
{
using namespace std;
string states;
int numStates = 0, i = 0, stateVar = 0;
string line;
char filename[SIZE];
ifstream inFSM, inString;
//Open FSM definition
cout << "Enter name of FSM definition: ";
cin.getline(filename, SIZE);
inFSM.open(filename); //Associate inFile with a file
if (!inFSM.is_open()) // failed to open file
{
cout << "Could not open the file " << filename << endl;
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
}
//Process FSM definition line by line until EOF
getline(inFSM, states);
numStates = Int32.TryParse(states);
//Check for num of states
if(numStates > 10)
{
cout << "There can be no more than 10 states in the FSM definition, exiting now." << endl;
return 0;
}
while (!inFSM.eof()) // while input good and not at EOF
{
getline(inFSM, line);
cout << line << endl;
}
return 0;
}
Je suis en train de convertir une chaîne en un entier en utilisant Int32.TryParse(), mais quand je compile j'obtiens l'erreur que Int32 n'a pas été déclaré dans ce contexe. Je ne sais pas pourquoi cela arrive, est-ce que je manque une déclaration d'espace de noms ?? Toute aide est appréciée, merci
MISE À JOUR: Merci pour toutes les réponses, comme dans le commentaire que j'ai posté, je ne cherche pas à utiliser C++/CLI, comment convertir une chaîne, déclarée à partir de la classe de chaîne , à un entier?
je préfère conseiller 'strtol', comme' atoi' n'a pas de mécanisme de rapport d'erreurs (vous ne savez pas si vous avez analysé un nombre égal à zéro correctement, ou si vous avez échoué à analyser une chaîne qui n'est pas un nombre - dans les deux cas vous obtenez '0' de' atoi'). –