如何从文件中读取一行中的特定字符
How do I read a specific character in a line from a file?
我正在文本文件中使用属性数据集,如下所示:
e,x,y,w,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,s,g
e,f,y,y,t,l,f,c,b,w,e,r,s,y,w,w,p,w,o,p,n,y,p
e,b,s,w,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,n,s,g
e,b,s,w,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,k,s,m
e,x,y,n,t,l,f,c,b,w,e,r,s,y,w,w,p,w,o,p,k,y,g
e,b,s,w,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,k,s,g
e,x,f,g,f,n,f,c,n,g,e,e,s,s,w,w,p,w,o,p,n,y,u
e,b,s,y,t,l,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,s,g
现在,我正在尝试弄清楚如何轻松地从给定列中读取字符(例如,每行的第 5 个字母)。我不知道该怎么做。有谁知道我能做什么?
考虑到您正在处理的数据集只有一个字符,而不是任意大小,您可以推断每个字符后跟一个逗号,因此
1 个字符 = 2 个文件空间,不计算所需字符
如果要读取第 5 行,它将是文件中(4*2 + 1)
位置。您可以将该行读入字符串并在字符串中找到它,或者每次只从文件中获取一个字符,直到达到所需的数字。
cout << "What column would you like to read from? ";
cin >> num;
int Length = (num - 1) * 2 + 1;
char ColumnLetter;
for(int i = 0; i < Length; i++)
{
inFile >> ColumnLetter;
}
如果数据中没有空格,则每个符号都用逗号分隔,并且字符串的末尾是一个符号"",则可以执行以下操作:
#include <iostream>
#include <fstream>
using std::ifstream;
ifstream file;
const int LINE_WIDTH; //number of your chars in line (without commas)
char GetFromFile(int row, int position) //row and position indexes start from 0!
{
file.seekg(row * (LINE_WIDTH * 2) + position * 2);
return file.get();
}
int main()
{
file.open("data.txt", ios::binary);
char c = GetFromFile(10, 3);
file.close();
return 0;
}
相关文章:
- 如何从一行中读取特定数量的字符?(C++)
- 如何让字符数组在一行而不是多行中打印出来?
- qt/c - 从一行阅读字符
- 如何在一行中从不同的变量(数据类型)创建一个字符数组?
- 打印一行 2D 字符数组 (C++)
- 如何在一行中输入 c++ 中的字符数组
- 用“ strcpy”在2D数组中删除(字符)的一行(字符)时是否存在任何错误
- 如何从文件中读取一行中的特定字符
- 在C++中一次一行地从文本文件中读取int(好的字符,然后转换)时出现问题
- 如何检查文件的最后一行是否有new_line字符?C++
- 每隔n个字符打印一行换行符
- C++:一次阅读一个字符,直到一行的末尾不起作用
- std::vector<char>并获取一个定界字符的下一行
- 找到文本文件中的最后一行,选择前10个字符并打印到一个新文件中
- 如何在C++中找到一行中包含反斜杠字符的字符串
- 计算字符数组中一行的字符数
- fstream正在为我的文件的每一行添加字符
- 获取一些设置字符后的下一行
- 如何从一行中提取一个字符并将其放入常量字符*中
- 从本地<String>计算一行中的 UTF8 字符