Visual Studio 2010 C ++不包括#include中的文件

时间:2013-09-28 19:47:38

标签: c++ visual-studio-2012 include

我对多个文件C ++程序相当新,我遇到了一个我不确定甚至可以解释的问题。这是问题,我的一个.cpp文件不允许我使用#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部分没有出现任何错误,所以它没有告诉我它找不到库。

在这种情况下,我不知道我需要在这里查找什么,为什么在创建一个名为main的.cpp文件时,我的包含不起作用?

编辑:发现问题,主要使用using namespace std,我在client.cpp中没有该行。

1 个答案:

答案 0 :(得分:0)

标准库中的stringofstream等名称需要在命名空间std::之前,您发布的内容不包含using namespace std;或{ {1}}在你尝试使用的类/函数之前(string,ofstream,getline)