我想让我的程序打开一个文本文件,转到特定行(例如,第 18 行)并将该行上的每个字符存储在一个字符 vector 中。
我对一般的编程还很陌生,所以这可能不是最好的方法,但这是我打算做的:
1) 获取特定行并将其存储在字符串中
2) 将该字符串转换为字符 vector 。我使用的是 vector 而不是数组,因此我可以使用 pushback() 使 vector 达到所需的确切大小,而不是在数组中分配太多或太少。
我可以很好地完成第 2 步,但我在第 1 步时遇到了问题。如何让它转到特定行?
最佳答案
只读所有行并忽略那些你不感兴趣的:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::ifstream file("file.ext");
std::string line;
unsigned int line_number(1);
const unsigned int requested_line_number(4);
while (std::getline(file, line))
{
if (line_number == requested_line_number)
{
std::cout << line << "\n";
}
line_number++;
}
}
这段代码当然没有错误处理,自然地,您不会希望在大多数时候对行号进行硬编码,但您明白了。
此外,我真的不明白 char vector/数组的用途。使用 std::string
来满足您的字符串处理需求,这就是它的用途。
关于c++ - 在 C++ 中,我将如何从文本文件中获取特定行并将其存储在 char vector 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206824/