2013-09-28 1 views
1

Я довольно новичок в нескольких файлах на C++-программах, и у меня возникла проблема, и я не уверен, что могу даже адекватно объяснить. Вот в чем проблема: один из моих .cpp-файлов не позволяет мне использовать какие-либо функции, включенные в его список #include.Visual Studio 2010 C++ не включает файлы, которые находятся в #include

Вот что я сделал: Сначала я написал свой код в main.cpp. Все работало нормально, оно компилируется и делает именно то, что я говорю ему. Теперь я пытаюсь переместить этот код в client.cpp, и я не могу объявить строки, потоки или что-то еще, что отлично работает в main.cpp.

Вот код, который работал просто отлично:

#include <stdio.h> 
#include <tchar.h> 
#include <iostream> 
#include <fstream> 
#include <direct.h> 
#include <string> 

#define SAVE_FILE_LOC "C:\\Saves\\" 
int main()   
{   

    ofstream saveFile;  
    string loc;  
    string userName;  
    printf("Please enter your user name:\n");  

    getline(cin, userName);  

    loc = SAVE_FILE_LOC;  
    loc = loc + userName;  
    if (_mkdir(loc.c_str()) == -1){  
     printf("Location Already Exists!\n"); 
    }  
    else{  
     loc = loc + "\\Profile.txt"; 
     saveFile.open(loc.c_str()); 
     saveFile << "Test"; 
     saveFile.close(); 
    }  
    return 0;  
}   

Теперь, единственное, что я сделал правой кнопкой мыши на моем «Source Files» папку (В VS) добавить новый файл .cpp, имя его client.cpp, скопировал и вставил точный код в файл, и теперь он не работает.

#include <stdio.h>   
#include <tchar.h>   
#include <iostream>   
#include <fstream>   
#include <direct.h>   
#include <string>   

#define SAVE_FILE_LOC "C:\\Saves\\"   

int login(void);   

int login(void)   
{   
    ofstream saveFile;  
    string loc;  
    string userName;  
    printf("Please enter your user name:\n");  

    getline(cin, userName);  

    loc = SAVE_FILE_LOC;  
    loc = loc + userName;  
    if (_mkdir(loc.c_str()) == -1){  
     printf("Location Already Exists!\n"); 
    }  
    else{  
     loc = loc + "\\Profile.txt"; 
     saveFile.open(loc.c_str()); 
     saveFile << "Test"; 
     saveFile.close(); 
    }  
    return 0;  
}   

Я получаю 30 ошибок компиляции из кода выше, вот пример:

 
Error 1 error C2065: 'ofstream' : undeclared identifier ***\Client.cpp 14 1 ConsoleApplication4 

Error 2 error C2146: syntax error : missing ';' before identifier 'saveFile' ***\Client.cpp 14 1 ConsoleApplication4 

Компилятор говорит мне, что вдруг он не может создать строки или потоки или что-нибудь еще. Обратите внимание, что я не получаю никаких ошибок в #include части кода, поэтому он не говорит мне, что он не может найти библиотеки.

Я понятия не имею, что мне нужно, чтобы даже искать здесь в этом случае, почему мои включенные не работают, когда я создаю .cpp-файл, который не называется main?

Редактировать: найдена проблема, основная используемая using namespace std, и у меня не было этой строки в client.cpp.

+2

Остановить 'using namespace std;' и начать поместить префикс 'std ::', где это необходимо. – syam

+0

Скорее всего, вы не указали всю необходимую информацию. Вы только что скопировали ** часть ** 'main.cpp' на' client.cpp'? Кажется, что 'main.cpp' или один из его включений, который вы не копировали, содержат строку типа' using namespace std; 'или что-то подобное. –

+0

Именно в этом проблема, один из файлов, включенных в проект, был «using namespace std». Спасибо за помощь! – user2827019

ответ

0

имена как string, ofstream из стандартной библиотеки должны предшествовать с пространством имен std::, что вы размещены не имеют либо using namespace std; под включает или std:: перед занятиями/функции, которые вы пытаетесь использовать (строка, ofstream, GetLine)

Смежные вопросы