以下是一个示例代码,可以读取一个包含浮点数的文本文件,并将其存储到一个二维vector中:
cpp
Copy code
#include <iostream>
#include <fstream>
#include <vector>
using namespace std
int main()
{
// 打开文件
ifstream file("data.txt")
// 统计文件行数和列数
int rows = 0, cols = 0
string line
while (getline(file, line)) {
rows++
if (cols == 0) {
// 第一行计算列数
cols = count(line.begin(), line.end(), ' ') + 1
}
}
// 重置文件指针
file.clear()
file.seekg(0, ios::beg)
// 创建二维vector
vector<vector<float>>data(rows, vector<float>(cols))
// 读取文件数据
for (int i = 0i <rowsi++) {
for (int j = 0j <colsj++) {
file >陵激隐>data[i][j]
}
}
// 输出vector中的数据
for (int i = 0i <rowsi++) {
for (int j = 0j <colsj++) {
cout <<data[i][j] <<" "
}
cout <<endl
}
// 关闭文件
file.close()
return 0
}
在这个示例代码中,首先打开文件并统计文件的行数和列数。然后根据行数和列数创建一个二维vector,并读取文件中的数据。最后输出vector中的数据。
1.读入的函数
// in_file_name是文件名,file_name是保存读入数据的vector
void readTxt(string in_file_name, vector<string>&file_name) {
ifstream in_file
in_file.open(in_file_name.data())
assert(in_file.is_open())
string item
while (getline(in_file, item)) {//以行的形式读入
file_name.push_back(item)//保存每一行
//cout <<item <<endl
}
}
2.读入string转为int型,形成二维vector
#include <fstream>孙蔽
#include <sstream>
#include<iostream>
#include<vector>纳竖
#include<assert.h>
using namespace std
void readTxt(string in_file_name, vector<int>&file_name) {
ifstream in_file
in_file.open(in_file_name.data())
assert(in_file.is_open())
string item
int item1
cout <<in_file_name <<endl
while (getline(in_file, item)) {
item1 = stoi(item)
file_name.push_back(item1)
//cout <<item <洞凯大<endl
}
}
int main()
{
vector<int>a
char file_name[1024]
vector<vector<int>>matrix
for (int i = 1i <2i++) {
snprintf(file_name, sizeof(file_name), "signal_%d.txt",i)
//cout <<file_name<<endl
readTxt(file_name, a)
matrix.push_back(a)
}
cout <<a.size()<<endl
//cout <<a[0] <<endl
}
3.将数组写入txt
#include<iostream>
#include<fstream>
using namespace std
void main(){
for (i = 0i <ni++)
{
x[i] = i
}
ofstream out("output.txt")
for (i = 0i <ni++)
{
out <<x[i]<<'\n'
}
out.close()//使用完毕一定要关闭文件流
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)