C++中如何逐行读取文件中所需要的数据
比如一个"abc.txt"文件(每行包括姓名和身高):张三175李四170王五160怎么打开一个文件后,逐行分别将姓名和身高读取出来?...
比如一个"abc.txt"文件(每行包括姓名和身高):
张三 175
李四 170
王五 160
怎么打开一个文件后,逐行分别将姓名和身高读取出来? 展开
张三 175
李四 170
王五 160
怎么打开一个文件后,逐行分别将姓名和身高读取出来? 展开
展开全部
#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;
}
#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;
}
展开全部
用string,先getlien把整行读出来,再分割字符串
ifstream("abc.txt");
string s;
getline(cin, s);
姓名 = s.substr(0, s.find(' '));
身高 = s.substr(s.rfind(' ') + 1);
ifstream("abc.txt");
string s;
getline(cin, s);
姓名 = s.substr(0, s.find(' '));
身高 = s.substr(s.rfind(' ') + 1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假定文件在
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
加载更多
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
加载更多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关键步骤:
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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询