Я довольно новичок в нескольких файлах на 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.
Остановить 'using namespace std;' и начать поместить префикс 'std ::', где это необходимо. – syam
Скорее всего, вы не указали всю необходимую информацию. Вы только что скопировали ** часть ** 'main.cpp' на' client.cpp'? Кажется, что 'main.cpp' или один из его включений, который вы не копировали, содержат строку типа' using namespace std; 'или что-то подобное. –
Именно в этом проблема, один из файлов, включенных в проект, был «using namespace std». Спасибо за помощь! – user2827019