使用 ifstream 从 C 语言的文本文件中解析整数
在编程领域,处理文件是一种常见的需要。其中一项任务涉及从文本文件中读取整数以进行数据分析或图形构建。然而,当面对包含未知行数(每行由不同数量的整数组成)的文本文件时,解析就成为一个挑战。
为了解决这个问题,我们可以使用可靠的 ifstream 类和 std: :getline() 函数从文本文件中读取行。然而,行解析带来了新的障碍。为了克服这个问题,让我们深入研究两种有效的方法:
使用 StringStream 和 While 循环:
此方法利用 istringstream 构造函数来解析一行。它在 while 循环内读取整数,将它们附加到向量中,直到遇到换行符:
<code class="cpp">while (std::getline(infile, line)) { std::istringstream iss(line); int n; std::vector<int> v; while (iss >> n) { v.push_back(n); } // Utilize the parsed integer vector 'v' for your desired purpose }</code>
使用 std::move 的单行解决方案:
For一种更简化的方法,我们可以采用 std::move() 和 for 循环的组合:
<code class="cpp">for (std::string line; std::getline(std::cin, line); vv.push_back(std::vector<int>(std::istream_iterator<int>(std::stay(std::istringstream(line))), std::istream_iterator<int>())) ) { }</code>
此解决方案利用 std::stay() 函数来保留输入流的所有权,允许在 for 循环中使用。它迭代各行,使用 std::istream_iterator 将整数解析为向量>。
以上是如何使用 ifstream 从 C 文本文件中解析整数?的详细内容。更多信息请关注PHP中文网其他相关文章!