【发布时间】:2014-07-22 20:19:17
【问题描述】:
我对函数中字符串使用的指针有疑问。我的代码如下。
void printName(int *max,int *min,string *maxFirst, string *maxLast)
{
ifstream infile;
infile.open("input.txt");
string firstName,lastName;
float age;
infile>>firstName>>lastName;
while(firstName!="Term") {
infile>>age;
if(age==*max)
{
maxFirst=&firstName;
maxLast=&lastName;
cout<<*maxFirst<<' '<<*maxLast<<endl;
}
}
要使用这个函数,在main()中,我将它定义为
int main()
{
void printName(int *,int *,string *,string *);
int *pMaxAge, *pMinAge;
string *maxFirst,*maxLast;
pMaxAge=&maxAge;
pMinAge=&minAge;
printName(pMaxAge,pMinAge,maxFirst,maxLast);
cout<<"\nThe oldest employee is "<<*maxFirst<<' '<<
*maxLast<<endl;
}
我跳过了部分代码。虽然第一个 cout 工作正常,但第二个不起作用。请问我的指针传递有什么问题吗?
谢谢。
【问题讨论】:
-
您的代码的重要部分似乎丢失了(特别是 maxAge、minAge、firstName 和 lastName 的定义)
-
maxFirst和maxLast应该是指向指针的指针。 -
您好,感谢您的回复。我的代码中有它们,但粘贴时会跳过它们。程序从另一个文件中读取名字和姓氏。
-
您好,谢谢。为什么 maxFirst 和 maxLast 应该是那些?
-
请不要跳过它们,它们的声明非常重要,尤其是它们声明的范围。
标签: c++ string function pointers