从文件中读取行并存储到变量中
Reading lines from a file and store into variable.
file.txt
的内容
a
b
c
a
b
c1 x c2
d
a、 b、c、c1、c2、d都是一些值。
我的功能
void Menu::readFile() {
string line;
ifstream myfile ("file.txt");
if (myfile.is_open()) {
while (getline (myfile, line)) {
cout << line << "n";
}
myfile.close();
} else cout << "Unable to open file";
}
这只是返回文件的内容,如何读取文件并将每一行解析为变量。每个换行符都分隔对象。
void Menu::readFile() {
string line;
vector <string> lines;
ifstream myfile ("file.txt");
if (myfile.is_open()) {
while (getline (myfile, line)) {
cout << line << "n";
lines.push_back(line);
}
myfile.close();
} else {
cout << "Unable to open file";
}
}
变量行将具有所有行。
此函数不会返回任何内容。它是声明的,因此不能返回任何值。您已经在逐个解析这些行了。现在不打印在这行:
cout << line << "n";
您应该将它们存储在某个容器中,例如std::vector<std::string>
。
最好使用列表或向量。下面是一个使用算法和迭代器的示例:
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> vals;
std::copy(
std::istream_iterator<std::string>(std::cin),
std::istream_iterator<std::string>(),
std::back_inserter(vals)
);
// Print them out, appending a newline to each word
std::copy(
vals.begin(),
vals.end(),
std::ostream_iterator<std::string>(std::cout, "n")
);
}
您可以将任何std::istream
对象初始化替换为std::istream_iterator
;特别是您的CCD_ 5变量。默认构造函数(空parens)构造流结束迭代器。
相关文章:
- 存储变量的更有效方法是什么?
- 使用 system() 不存储变量C++?
- 在递归DP中,通过存储变量来分解递归调用:效率低下
- 使用 LDAP 存储C++变量
- 在满足特定条件时运行迭代C++以存储变量
- 使用getline解析和存储变量
- 如何存储变量的地址并使用指针打印值
- C++ / Objective-C++ - 如何在 NSDictionary 中存储C++变量?
- 如何从文件中读取并存储变量
- 指针是否延长了自动存储变量的生存期
- 如何在 INI、CFG 或 XML 文件中存储C++变量
- 如何在 c++ 中的字符串数组中存储变量
- 如何在特定偏移量处存储变量
- 如何存储变量的前一个值并更新它以进行比较
- 存储变量的有效方法是什么?(自制虚拟机)
- 在C++中存储变量
- 在c++中按值调用时,存储变量的副本
- 为什么lambda只捕获自动存储变量
- 如何在寄存器中存储c++变量
- Getline()结合cin.ignore()不存储变量?(错误)