std::getline 用于 ifstream,使用参数字符串或 char *
std::getline for an ifstream, using parameter string or char *
我正在使用fstream
读取或写入文件。
我遇到了有关功能ifstream::getline
的问题。当我包含 <string>
时,我可以将字符串作为参数传递给函数,如果没有,我必须将 char*
作为参数传递。有人可以告诉我为什么吗?
根据函数的描述,据我了解,等待的正确参数应该是char*
。string
值是否在此处转换为char*
?
字符串类型未转换为 char*
。这就是.c_str()
存在的原因。但是 std::string 类型将接受char*
作为初始值设定项。
这两种类型不向后兼容。 std::string
会接受char*
,但char*
不接受std::string
。
> std::getline()
有两个版本:
std::istream::getline(char*, char = 'n'); // member function of istream
std::getline(std::istream&, std::string&, char = 'n'); // free function in <string>
当包含std::istream
的定义时,您显然会得到成员函数。但是,您需要包含<string>
才能获得std::string
的定义,该定义也随其版本一起提供 std::getline()
.
相关文章:
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 对函数的 out 字符串参数使用 swap 与赋值
- sscanf() 有两个字符串参数
- isPalindrome不显示输出,isPalindrome函数未使用字符串输入作为字符串参数进行测试
- 如何通过C++在Python函数中传递字符串参数
- 将字符串参数传递给 ifstream
- Pybind11:将字符串*参数传递给构造函数
- 为什么我不能提供一个字符串参数来打印 ncurses?
- 为什么将char*传递给字符串参数会产生汇编错误
- 字符串参数常量字符* 和常量 wchar_t*
- 无法将字符串参数传递到构造函数中?
- 为什么对字符串参数的常量引用可以采用字符串文字?
- C 中的模板专业化中的字符串参数
- 如何使用单声道嵌入将字符串参数传递给 c# 方法
- 如何检查谷歌模拟中作为空指针传递的字符串参数
- 向 const 字符串参数发送 0 int 文本时的访问冲突
- 构造函数字符串参数未设置窗口标题
- C++ 重构采用 int 或字符串参数的方法
- 调用具有字符串参数direct vs variable的函数
- 如何使用 2 个字符串参数从 jni java 库调用