2016-05-29 10 views
0

Ich habe versucht, C++ in den letzten paar Tagen zu lernen, und stieß auf ein Problem, wenn ich versuchte zu verwenden die getline() und stoi() Methoden in einiger Übung Code:Erstellen in Visual Studio nicht erkennen getline() oder stoi() auch mit #include <string> und <fstream> Aussagen

#include <string> 
#include <fstream> 
#include "stdafx.h" 
#include <iostream> 
using namespace std; 


    int main() 
    { 

     string numberGuessed; 
     int intNumberGuessed = 0; 

     do { 
      cout << "Guess a number between 1 and 10"; 
      getline(cin, numberGuessed); 

      intNumberGuessed = (stoi(numberGuessed)); 
      cout << intNumberGuessed << "\n"; 

     } while (intNumberGuessed != 4); 
     cout << "You win\n"; 
      return 0; 



    }` 

als ich versuchte, diesen Code in VS 2015 zu bauen, könnte die Konsole nicht getline oder stoi identifizieren, als ob ich # include-Anweisungen nicht hinzugefügt hatten für string und fstream. Ist etwas mit meinem Code nicht in Ordnung oder hat es etwas mit VS zu tun?

Antwort

4

Es ist etwas mit VS zu tun.

Da Sie haben

#include "stdafx.h" 

Ich vermute, Sie haben Header vorkompilierte eingeschaltet und „stdafx.h“ die vorkompilierte Header ist. (Das ist der Standardname in VS)

Mit vorkompilierten Headern wird alles vor der Include-Anweisung für den vorkompilierten Header ignoriert.

Entweder sicherstellen, #include "stdafx.h" ist die allererste Sache in der Datei (mit Ausnahme von Kommentaren), oder deaktivieren Sie vorkompilierte Header.

+0

Ja das war mein Problem - ich habe vorkompilierte Header abgeschaltet und alles läuft gut (Manchmal ist VS genauso kompliziert zu lernen wie C++ ...) Danke für die Hilfe! –