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个字符
有办法嘛
提供下代码 谢谢了
C++ 读取TXT的时候 包含空格 已知长度
答案:2 悬赏:10 手机版
解决时间 2021-03-05 15:14
- 提问者网友:绫月
- 2021-03-05 11:51
最佳答案
- 五星知识达人网友:街头电车
- 2021-03-05 12:10
举例代码如下:
#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;
}
#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
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;
}
全部回答
- 1楼网友:鸽屿
- 2021-03-05 12:36
c++的标准输入输出流提供了三个类库,,在第三个类库中有sstringstream这个类,这个类对象可以绑定一行字符串,然后以空格为分隔提取单词,可以解决你的问题。具体的步骤很简单,定义一个string变量,用getline()逐行读取你的文件,每读一行,用sstringstream的对象绑定一行(string变量初始化),然后提取。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯