我需要以垂直方式遍历文件。如果假设文件内容是:
adg
beh
cfi
它应该将文件打印为:
abc
def
ghi
每条线的长度将相同(即,对于上面的示例,所有线的长度都为 3)。我已经编写了一个代码,但它没有按要求遍历文件。
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
fstream fs;
fs.open("asd.txt",ios::in);
string str;
char *ch = new char();
int lineLen = 0, k = 0;
if(getline(fs,str))
{
lineLen = str.length();
}
fs.seekg(0);
if(lineLen > 0)
{
for(int i = 0;i<lineLen;i++)
{
fs.seekg(i+k*lineLen);
while(fs.read(ch,1))
{
k++;
fs.seekg(i+k*lineLen);
cout<<*ch;
}
k = 0;
}
}
fs.close();
cin.ignore();
}
我对文件处理有点陌生,找不到错误。另外,有没有更好的方法可以遵循?