O 有一个任务,我必须在其中创建一个函数来提示用户输入文件名并将输入传递回 main。我必须将它作为参数传递(我假设这意味着通过引用传递。)我只是在处理第一个函数“getFileName”。我知道在 C++ 中有更简单的方法可以做到这一点,但我被指示这样做,我确信这里有一些有价值的东西可以学习,但我没有掌握它。在任何情况下,我都能让函数像这样处理整数:
#include <iostream>
using namespace std;
void getFileName(int &fileName);
int main()
{
int fileName;
getFileName(fileName);
cout << fileName;
return 0;
}
void getFileName(int &fileName)
{
cout << "Please enter the filename: ";
cin >> fileName;
return;
}
当我尝试将整数更改为文本时,我的问题出现了。我被告知使用原型:
void getFileName(char []);
我尝试的一切都会给我错误,主要与设置指向数组的指针或设置对数组的引用等有关。我当前的代码如下所示:
#include <iostream>
using namespace std;
void getFileName(char &fileName[]);
int main()
{
char fileName[];
getFileName(fileName);
cout << fileName;
return 0;
}
void getFileName(char &fileName)
{
cout << "Please enter the filename: ";
cin >> fileName;
return;
}
我得到 g++ 的错误:
assign26.cpp:19: error: declaration of ‘fileName’ as array of references
assign26.cpp: In function ‘int main()’:
assign26.cpp:23: error: storage size of ‘fileName’ isn't known
虽然给我解决问题的代码将帮助我完成我的任务,但我确实想了解发生了什么,所以请解释解决方案。我非常感谢所有的帮助。
编辑
这是有效的代码,感谢本网站成员的所有帮助!
void getFileName(char fileName[]);
int main()
{
char fileName[256];
getFileName(fileName);
cout << fileName;
return 0;
}
void getFileName(char fileName[])
{
cout << "Please enter the filename: ";
cin >> fileName;
return;
}
问题:我不明白数组是如何工作的。当我不需要时,我试图通过引用传递文本。还有我应该看到的语法错误。