从函数参数常量字符串 (&) 设置值
Setting a value from function parameter const string(&)
非常菜鸟,简单的问题,希望有一个简单的答案。我的问题基本上归结为函数参数上的一行代码,即:
void className::read(const string &)
{
ifstream fin;
fin.open(fname);
/* ...function code */
fin.close()
}
输入在 main 中建立为字符串 fname(即 object.read(fname)
)。当我这样做时,它告诉我 fname 尚未在此范围内声明。因此,我的问题是如何使用 fname(输入)作为 fin.open() 中的文件名。感谢所有已经提供帮助的人,并为之前对问题的糟糕解释感到抱歉。
如果 fname 很好地引用了函数参数,你可以,因为它有一个 const 修饰符。所以你必须删除常量修饰符。一旦完成,就像分配给任何其他变量一样。
但是,如果您的意思是在函数中使用 fname 的值,那就更简单了,您只需创建一个新变量并分配它:
std::string newVariable = fname;
我可能过于简化了这一点,但这是您想要的吗?命名参数 fname
?
void className::read(const string& fname)
{
printf(fname.c_str()); // Do what you want with the string.
}
我不确定我是否理解你的问题。您是在问是否可以在函数中修改fname
吗?如果这是您想要的,您需要修改 read
函数的签名以采用非常量引用。
void className::read( string& fname )
{
fname = "something else"; // this change is visible even after the
// function returns
}
或者您是在问如何创建一个本地字符串,该字符串是fname
的副本?
void className::read( const string& fname )
{
std::string local = fname; // local contains a copy of fname
}
相关文章:
- C++ 命名参数习惯用语 - 未设置字符串属性
- 如何将字符串属性设置为 QTreeWidgetItem?
- 我如何处理有关输入的字符串大小超过字符数组设置大小的错误?
- C++如何将字符串数组中的一个点设置为枚举变量
- 从C++为字符串函数设置_ENV
- 在给定字符串上使用 tolower() 和 isalpha() 并将其输出设置为另一个字符串
- 通过比较字符设置字符串时出现问题
- 如何在 c++ 中从字符串向量设置类对象
- STD ::设置带有字符串键和潜在效率损失
- 如何调用 GetAltMonthNames 来填充外部区域设置月份字符串的安全数组
- 设置可变值通过字符串引用它
- 仅使用 getName 在主函数中设置字符串名称
- 用设置功能在类中设置字符串
- 如何从十六进制设置字符串值
- 为什么这段代码跳过设置字符串变量的 if 语句
- 使用C/C++设置字符串格式
- C++如何从文件中设置字符串变量
- 设置字符串为v8 Array
- 通过指针在结构中设置字符串时发生C++错误
- 如何在c++类中设置c字符串的默认值