Invalide de pointeur Null - C++

Je suis un invalide de pointeur null erreur à partir de cette section du code. Je devine que c'est quelque chose à voir avec les cordes, mais comme je l'ai récemment appris à leur sujet, je ne trouve pas le problème.

string batchCipherFiles()
{
int count(0);
string text, file; 
ifstream inputFile;

cout << " How many files do you wish to encrypt?: ";
cin >> count;
for (int i(1) ; i <= count ; ++i)
{
    stringstream ss;
    ss << "unencrypted" << i << ".txt";
    file = ss.str();
    inputFile.open(file.c_str(), ios::in);
    if (inputFile.fail()) 
    {
        cout << "\n An error has occurred.";
    }
    else
    {
        while (!inputFile.eof())
        {
            getline(inputFile, text);
            cout << "\n " << file << " = " << text << "\n\n";
            int applyCeasarShift(string,string);        
            applyCeasarShift(text, file);
        }
        inputFile.close();
    }
}

return (0);
}

Ici est la ligne de débogage à partir de xstring:

 #ifdef _DEBUG
_CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Debug_message(const wchar_t *message, const wchar_t *file, unsigned int line)
{   //report error and die
    if(::_CrtDbgReportW(_CRT_ASSERT, file, line, NULL, message)==1)
    {
        ::_CrtDbgBreak();
    }
}

Merci d'avance pour toute aide.

EDIT: L'erreur se produit sur l'instruction de Retour, et dans l'extrait de xstring, la flèche jaune pointe vers "::_CrtDbgBreak();"

EDIT 2:

xstring:
basic_string(const _Elem *_Ptr)
    : _Mybase()
    {   //construct from [_Ptr, <null>)
    _Tidy();
    assign(_Ptr);
    }

xutility:
template<class _Ty> inline
void _Debug_pointer(const _Ty *_First, _Dbfile_t _File, _Dbline_t _Line)
{   //test iterator for non-singularity, const pointers
if (_First == 0)
    _DEBUG_ERROR2("invalid null pointer", _File, _Line);
}

stdthrow:
#ifdef _DEBUG
_CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Debug_message(const wchar_t *message, const wchar_t *file, unsigned int line)
{   //report error and die
    if(::_CrtDbgReportW(_CRT_ASSERT, file, line, NULL, message)==1)
    {
        ::_CrtDbgBreak();
    }
}

J'espère que c'est le droit des trucs.

  • sur la ligne à laquelle se produit l'erreur ?
  • montrant le haut de la stacktrace est complètement inutile.. quelle est la ligne d'origine?
  • S'il vous plaît montrer l'ensemble de la trace de la pile. Nous avons besoin de savoir ce qui s'appelle _CrtDbgBreak(), et ce qui appelle cette fonction, et ainsi de suite.
  • Les fichiers unencrypted1.txt, unencrypted2.txt, etc. existe sur votre système? Fait disparaître l'erreur si vous indiquez un chemin d'accès complet?
  • Ces fichiers existent, oui. Je n'ai pas essayé, mais il a besoin de travailler sur plus d'un ordinateur donc je ne sais pas si cela fonctionnerait.
InformationsquelleAutor user1364552 | 2012-04-29