c++ - 如何在 C++ 中逐个字符地从文件中读取?

标签 c++

我正在尝试从文件中读取,但我唯一能做的就是使用 getline()。

问题是阅读整行对我来说并不适合工作。

我的输入文件是这样的:

abc 10 20
bbb 10        30
ddd 40 20

当每行中的第一个单词应保存为字符串时,之后的两个数字都应保存为整数。 每行中“单词”之间的分隔符可以是空格或制表符。

那么唯一的解决方案是逐字符读取吗?或者有其他解决方案吗?

最佳答案

假设你想要这样的东西:

std::string s;
int         v0, v1;
while (in >> s >> v0 >> v1) {
    std::cout << "do something with s='" << s << "' v0=" << v0 << " v1=" << v1 << "\n";
}

但是,这并不能确保所有值都在一行中。如果你想为此安排,你可能想使用 std::getline() 读取一行,然后使用 std::istringstream 将这一行拆分成上面那样。

关于c++ - 如何在 C++ 中逐个字符地从文件中读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055819/

相关文章:

c++ - 超定线性代数方程的最小二乘解Ax = By

c++ - Bjarne Stroustrup 的 c++ 书中的这个例子有什么问题

c++ - Firefox 与我的计时器交互?! (跟进)

C# Marshalling double* 从 C++ DLL?

c++ - 为什么这个 SFINAE 在 gcc 中会报错?

c++ - 关于延迟动态初始化的问题

c++ - Windeployqt 无法运行, "Access is denied."

c++ - 在 C++ 中使用正则表达式读取空格、新行和制表符

c++ - 二维 vector 的运行时错误

c++ - WM_CTLCOLORSTATIC 永远不会在 WIN32 应用程序中触发