ifstream 获取从字符到字符串的行更改输出
ifstream get line change output from char to string
C++ ifstream 获取行更改 getline 输出从字符到字符串
我有一个文本文件..所以我读了它,我做了类似的事情
char data[50];
readFile.open(filename.c_str());
while(readFile.good())
{
readFile.getline(data,50,',');
cout << data << endl;
}
我的问题是,与其通过变量名称数据创建一个大小为 50 的字符,我是否可以将 getline 转换为字符串,而不是类似
string myData;
readFile.getline(myData,',');
我的文本文件是这样的
2D行, [3,2]3D行,[7,2,3]
我试过了,编译器说..
没有匹配函数 getline(std::string&,char)
那么是否仍然可以通过分隔符中断,将值分配给字符串而不是字符。
更新:
用
while (std::getline(readFile, line))
{
std::cout << line << std::endl;
}
它逐行读取,但我想将字符串分成几个分隔符,最初如果使用 char,我会将分隔符指定为第 3 个元素,即
readFile.getline(data,50,',');
如果我用上面的分隔符逗号打破/爆炸,我该如何处理字符串。 逐行
使用 std::getline()
:
std::string line;
while (std::getline(readFile, line, ','))
{
std::cout << line << std::endl;
}
始终立即检查读取操作的结果,否则代码将尝试处理读取失败的结果,就像发布的代码一样。
尽管可以在 getline()
中指定不同的分隔符,但它可能会错误地将两个无效行处理为单个有效行。建议完整检索每一行,然后拆分该行。用于分割线条的有用实用程序是 boost::split()
。
相关文章:
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何从void函数输出字符串
- 输出字符串数组
- 如何输出字符串第二个单词的第一个字母?
- 多线程环境中的输出字符串流出现问题
- 输出字符串到cmd显示的右显示,但未被认为是命令
- 读取文本文件并输出字符串
- 输出字符串使用 C++ 覆盖 Linux 终端上的最后一个字符串
- 如何在C++中输出字符串的向量
- 无法从类模板输出字符串
- FWRITE 输出字符串不正确
- Qt单元测试输出字符串长度截止
- 无法显示输出字符串
- 如果条目大于90,则输出字符串的布尔函数
- C++不带 'n' 或 endl 的输出字符串将在字符串末尾输出'#'
- 在C++中输出字符串和 strncpy 时遇到问题
- 获取c#输出字符串参数值为c++ BSTR*
- C++初学者,开关不输出字符串的第一个字符
- 输出字符串/字符错误(c++)
- Getline()省略输出字符串的第一个字母