我正在使用codeblockide。
的main.cpp
#include <iostream>
#include<string>
#include<fstream>
#include "adduser.h"
using namespace std;
int main()
{
string name;
adduser();
user();
cout<<name;
return 0;
}
adduser.cpp
#include<fstream>
#include<iostream>
#include<cstdlib>
using namespace std;
int adduser()
{
string name,pass;
ofstream fout;
fout.open("test.txt");
cout<<"Enter The Name : ";
cin>>name;
cout<<"Enter The Password : ";
cin>>pass;
fout<<name<<","<<pass<<endl;
fout.close();
return 0;
}
adduser.h
#ifndef ADDUSER_H_INCLUDED
#define ADDUSER_H_INCLUDED
extern std::string name;
int adduser();
#endif // ADDUSER_H_INCLUDED
我想访问字符串变量&#34; name&#34;从adduser.cpp文件中打印并在main.cpp上打印
我搜索了&#34;如何从另一个源文件中访问变量&#34;得到&#34; extern&#34;关键字。
我用过&#34; extern&#34;但我没有得到我的预期,它什么都没有显示。
但这不适用于此。我做错了吗? 我怎样才能做到这一点?
答案 0 :(得分:0)
您似乎试图从另一个函数访问函数adduser()
的本地变量,这在C ++中是不允许的。
此外,string name
中main()
的声明隐藏了name
中adduser.hpp
的定义
这里有几个选项:
name
移到adduser()
之外的功能adduser()
的返回类型更改为std::string
并将return name
添加到adduser()
并main
name = adduser()
std::string& name
st::string* name
或adduser()
添加到adduser()
,然后分别main
或adduser(name)
在adduser(&name)
中致电import calendar
def some_function(year):
y = calendar.Calendar(year)
print list(y.monthdays2calendar(year, 1))
< / LI>