gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:42 25 4
gpt4 key购买 nike

我对多文件 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;
}

现在,我所做的唯一一件事就是右键单击我的“源文件”文件夹(在 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   ConsoleApplication4Error   2   error C2146: syntax error : missing ';' before identifier 'saveFile'    ***\Client.cpp  14  1   ConsoleApplication4

编译器告诉我现在它突然无法创建字符串或流或其他任何东西。请注意,我在代码的 #include 部分没有收到任何错误,所以它没有告诉我它找不到库。

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

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

最佳答案

标准库中的 stringofstream 之类的名称需要以命名空间 std:: 开头,您发布的内容也不需要在您尝试使用的类/函数(string、ofstream、getline)之前,在 include 或 std:: 下使用 using namespace std;

关于c++ - Visual Studio 2010 C++ 不包括 #include 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com