C++中如何逐行读取文件中所需要的数据

比如一个"abc.txt"文件(每行包括姓名和身高):张三175李四170王五160怎么打开一个文件后,逐行分别将姓名和身高读取出来?... 比如一个"abc.txt"文件(每行包括姓名和身高):
张三 175
李四 170
王五 160

怎么打开一个文件后,逐行分别将姓名和身高读取出来?
展开
 我来答
梦想窗外
推荐于2017-09-08 · TA获得超过1588个赞
知道大有可为答主
回答量:1180
采纳率:0%
帮助的人:1560万
展开全部
#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main()
{
ifstream in;
string name = "";
int age = 0;
in.open("abc.txt");

if (!in)
{
cout << "打开文件失败!" << endl;
return -1;
}

while(!in.eof())
{
in >> name >> age;
cout << name << " " << age << endl;
}
in.close();
return 0;
}
jqk1986
2009-04-26 · TA获得超过285个赞
知道答主
回答量:127
采纳率:0%
帮助的人:0
展开全部
用string,先getlien把整行读出来,再分割字符串

ifstream("abc.txt");
string s;
getline(cin, s);

姓名 = s.substr(0, s.find(' '));
身高 = s.substr(s.rfind(' ') + 1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e9042513a
2009-04-26 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3500万
展开全部
C逐行读取文本文件

#include <stdio.h>
#include <dir.h>
#include <string.h>

int READLINE(FILE *fPtr, char *strPtr, int strlen, char ellipsis);

int main(int argc, char *argv[])
{
FILE *finPtr;
char str[10240];
int i;

finPtr = fopen("c:\\1.txt","r");

do
{
i = READLINE(finPtr,str,sizeof(str),0xa);
if (i == 0)
printf("%s\n",str);
}
while(i >= 0);

fclose(finPtr);

return 0;
}

int READLINE(FILE *fPtr, char *strPtr, int strlen, char ellipsis)
{
int ch;
char *tmpPtr;

memset(strPtr,0x0,strlen);
ch=0x0;
tmpPtr=strPtr;

if(feof(fPtr))
return -1;

while(!feof(fPtr)&&ch!=0xa)
{
ch=fgetc(fPtr);
if(ch!=EOF&&ch!='\n')
{
*strPtr=ch;
strPtr++;
}
}
if(*tmpPtr==ellipsis||*tmpPtr=='\0'||*tmpPtr=='\n')
return 1;
else
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蹇洁登白薇
2020-07-26 · TA获得超过3651个赞
知道大有可为答主
回答量:3110
采纳率:29%
帮助的人:459万
展开全部
假定文件在
abc.txt
中,无空白行
用读入1行,再找每行最后一个数的开始位置,用
sscanf
读得。
#include
main(){
file
*fin;
char
str[80];
int
i,l,n=0;
double
x[30000];
fin=fopen("abc.txt","r");
while(1)
{
if
(
fgets(str,80,fin)==null)
break;
l
=
strlen(str);
for
(i=l-1;i>0;i--){
if
(str[i-1]=='
'
&&
(str[i]>='0'
&&
str[i]<='9')){
sscanf(&str[i-1],"%lf",&x[n]);n++;break;}
};
}
for
(i=0;i
评论
0
0
加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pqaabbccdd
推荐于2017-10-10 · TA获得超过1513个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:604万
展开全部
关键步骤:
1、ifstream in;
2、in.open("abc.txt");
3、while(!in.eof())
{
in >> name >> age;
cout << name << " " << age << endl;
}
4、in.close();
思路:
1、声明一个文件流。
2、打开文件。
3、循环文件直到遇到文件结束符退出。
4、读取每行的数据。
5、关闭文件。
实现代码:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
ifstream in;
string name = "";
int age = 0;
in.open("abc.txt");
if (!in)
{
cout << "打开文件失败!" << endl;
return -1;
}
while(!in.eof())
{
in >> name >> age;
cout << name << " " << age << endl;
}
in.close();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式