从文件 C++ 读取字符串流
isstringstream reading from file c++
我正在尝试读取一个数字文件。
getline() 获取该行,但 isstringstream 仅从该行中读取 1 个数字,而忽略了其余的数字。我需要读取每个数字并将其插入我的向量中
文件示例为:
118 115 115 116 116 116 118 117 115 114 114 115 117 118 117 114 114 116 117
116 117 117 117 116 115 115 115 115 116 118 118 117 116 114 112 112 112 114
115 ... so on
int main()
{
vector<unsigned char>gray;
int lines=2;
for (int i = 0; i < lines; i++)
{
string line4;
getline(infile, line4);
istringstream iss4(line4);
int g;
iss4 >> g;
gray.push_back((unsigned char)g);
}
return 0;
}
稍微改变一下你的代码:
#include <cstdint> // For uint8_t
int main()
{
vector<uint8_t>gray;
unsigned int line_number = 0U;
std::string text;
while (getline(infile, text))
{
istringstream iss4(text);
uint8_t value;
while (iss4 >> value)
{
gray.push_back(value);
}
}
return 0;
}
笔记:
- 提取更多内容时,可以像文件一样处理大于一个值。
uint8_t
类型保证 8 位无符号整数。
您可以使用
std::istream_iterator
方法;这里显示了使用std::cin
的示例。
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
std::vector<unsigned char> gray;
std::copy(std::istream_iterator<int>{std::cin},
std::istream_iterator<int>{},
std::back_inserter(gray));
return 0;
}
相关文章:
- 如何使用Luacneneneba API正确读取字符串和表参数
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何从字符串C++读取多个整数
- 使用字符串读取的字符串
- 从文件到字符串读取并传递到功能
- C++ cin 将字符串读取到 int 类型中返回 0
- 使用CIN和/或字符串读取带有混合输入的文本文件
- 将两个字符串作为一个字符串读取
- 如何将WCP 1252字符串读取为std::tstring
- 如何将字符串读取为字符串向量或将整数读取为整数向量
- 将一系列字符串读取到char数组中
- 如何在 c++ 中将文件中的段落作为单个字符串读取
- 从 txt 文件中将后缀表达式作为字符串读取
- C++银行项目;如何将一组字符串读取为单独的浮点数并添加它们
- 在 c++ 中循环字符串读取器
- 将字符串读取为命令行参数C++
- 如何在QT中使用QDomDocument对象将字符串读取为XML
- 使用Matio库将.mat文件中的字符串读取到C++中
- 作为字符串读取第一列数据文件
- 如何在字符串读取完成时停止c++的recv() ?