c++读取txt中一行数据赋给一个Cstring

“n1,s1,s2,s3,n2,l1,l2,l3,”"n2,s2,n3,n4,n5,l1,l2,l3,""n3,n4,n3,l1,l2,l3,"这样一行一行的数据,把他们... “n1,s1,s2,s3,n2,l1,l2,l3,”
"n2,s2,n3,n4,n5,l1,l2,l3,"
"n3,n4,n3,l1,l2,l3,"
这样一行一行的数据,把他们分别赋给一个Cstring
展开
 我来答
冈底斯旅客
2011-05-20 · TA获得超过224个赞
知道答主
回答量:74
采纳率:0%
帮助的人:45.4万
展开全部
//用标准库string实现
//建立一个vector<string>容器,每个string是一行
#include<fstream>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string filename;
vector<string> lines; //容器
string str;
cin>>filename;
ifstream file(filename.c_str()); //文件输入流
while(getline(file,str)){ //读取一行,放入str
lines.push_back(str); //将str的副本加到lines末尾
}
}
追问
能用fscanf做吗?或者ReadString做吗?回答能详细点吗?
追答
//用fscanf可以,readstring我不会
//建议用标准c++,不易出错,少用c语言
#include

const int lines_max=30;
const int string_max=30;

int main()
{
FILE* fp;
char lines[lines_max][string_max];
char fname[30];
scanf("%s",fname);
fp=fopen(fname,"r");
if(fp==NULL)
printf("The file was not opened\n");
else{
int line_no=0;
while(fscanf(fp,"%s",lines[line_no])!=EOF)
++line_no;
int i=0;
while(i<line_no){
printf("%s\n",lines[i]);
++i;
}
}
fclose(fp);
return 0;
}
huang_yue_ning
2011-05-20
知道答主
回答量:13
采纳率:0%
帮助的人:4.4万
展开全部
const int MAX_LEN = 1024
string buffer[] = new buffer[MAX_LEN]
stream.readline()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式