永发信息网

C++ 读取TXT的时候 包含空格 已知长度

答案:2  悬赏:10  手机版
解决时间 2021-03-05 15:14
TXT内容:
The Great Divorce C. S. Lewis 2/17/2016
War and Peace Leo Tolstoy 12/31/2015

存入 string name
string author
string date

但是myfile>>name>>author>>date 名字之间有空格就不正常了
name到author 是20个字符
author到date 是15个字符
有办法嘛
提供下代码 谢谢了
最佳答案
举例代码如下:
#include "stdafx.h"//If the vc++6.0, with this line.//
#include 
#include 
#include 
using namespace std;
void readtxt(ifstream &fn,string &s,int n){//读字段函数
    int ch,i;
    while((ch=fn.get())==' ');
    for(s+=ch,i=1;i         if((ch=fn.get())!='\n')
            s+=ch;
        else return;
}
int main(void){
    string name,author,date;
    ifstream infile("aaa.txt");
    if(!infile){
        cout << "Open the file failure...\n";
        exit(0);
    }
    while(1){
name=author=date="";
readtxt(infile,name,20);
if(infile.eof())
break;
readtxt(infile,author,15);
readtxt(infile,date,11);
cout << name << endl << author << endl << date << "\n\n";//Look at...
}
    infile.close();
    return 0;
}
全部回答
c++的标准输入输出流提供了三个类库,,在第三个类库中有sstringstream这个类,这个类对象可以绑定一行字符串,然后以空格为分隔提取单词,可以解决你的问题。具体的步骤很简单,定义一个string变量,用getline()逐行读取你的文件,每读一行,用sstringstream的对象绑定一行(string变量初始化),然后提取。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
移栽植物时,常选择傍晚,有时还要去掉一些叶
离婚后女方户口不迁走能再婚吗
金钊源便民店(同心超市店)地址有知道的么?有
请问iPad mini2和iPhone5s的扬声器哪一个更好
梧州有好的什么高中
微信公众号 动画视频如何制作?
上林县档案局(旧)地址在什么地方,想过去办事
单选题幻灯放映员想调整一下幻灯机,使银幕上
【一个鸡蛋含多少蛋白质】一个鸡蛋里含多少蛋
倩女幽魂开店为了提高知名度能不能把所有的银
我想学美甲去哪里学比较好
莎莉嘉作文500个字
百万答题属于最新热点吗?
校园生活中,师生难免会有误解、矛盾。假如你
棠代表什么意思
推荐资讯
为什么在工厂上班那么枯燥乏味啊?不停的倒班
viv0手机系统出现异常退出怎么办?
绵阳哪家美术培训最专业?学费平价?
(2010的1111次方+1)/(2010的2222次方+1)
肺病日久出现心病的传变关系属于A.制己所胜B.
加速度公式推导,请写出过程和用法
未婚先孕怎么办,父母要打掉我的孩子
PSP三国志9吕玲绮在哪?
这个coser是谁?不是saku吗
下图是基因控制蛋白质的合成过程示意图,请回
汽车,变速器,6AT,CYT,手自一体,啥意思
华为荣耀7i有没有运行内存是2g的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?