怎么样从txt文本中隔行读取多行内容?

huaxin84 2011-08-22 09:07:23
TXT文本是类似这样的

第一行的注释
cool 酷(一共50个字符)
--------------------------------(一共50个-)
luck 幸运(一共50个字符)
--------------------------------(一共50个-)
。。。
。。。


类似这样的


我的思路是:
const int max = 100
string words[max];
RtlZeroMemory(words,sizeof(words));
string zs[max];
RtlZeroMemory(words,sizeof(zs));
int a =50; //假设文本每行50个字符,两个内容用空格分开
ifstream fin ("date.txt");
if (!fin.bad())
{
for(int n = 0; n<50; n++)
{
fin.ignore( a , '^'); //我是要忽略已经读过的和没用的~
fin>>words[n]>>zs[n];
a+=100;
}
fin.close();
}

//我的txt是这生成的
ofstream fout ("date2.txt");
if (!fin.bad())
{
fout<<""<<endl
<<setw(20)<<words[0]<<setw(30)<<zs[0]<<endl;
fout.close();
}






我要把两个内容赋值给words[i]和zs[i]


事实上没有成功。

有人推荐用fin.getline,
istringstream istr;
string first,second;
for(int i=0;i<n;i++)
{
fin.getline(words,20);//这里是读取一行的前20个字符。放入words中
istr(words);
istr>>first; //取到的是你文件中的一行的第一个字符串,放入first中
istr>>second;//取到第二个字符串,放入second中
}

可是会报错,也不知道怎么隔行读取。
...全文
406 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 huaxin84 的回复:]

具体怎么处理呢?
[/Quote]
fin.getline(words,100);
nightkids_008 2011-08-23
  • 打赏
  • 举报
回复
用好lseek
huaxin84 2011-08-23
  • 打赏
  • 举报
回复
具体怎么处理呢?
wintree 2011-08-22
  • 打赏
  • 举报
回复
顶楼上的,我刚才回复了,为什么没有显示?
zyrr159487 2011-08-22
  • 打赏
  • 举报
回复
最好是整行字符串先一起读出来在处理
野男孩 2011-08-22
  • 打赏
  • 举报
回复
顶楼上。。。。

getline就是要读一行,你就给20个字节,能get到line呢。。。。。尤其是明知道一行50个。。。那就设个100呗~
luciferisnotsatan 2011-08-22
  • 打赏
  • 举报
回复
每行50个字符,用
fin.getline(words,20);
只读20个字节,那getline没多大意义了
huaxin84 2011-08-22
  • 打赏
  • 举报
回复
各位大神帮帮忙吧~

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧