在C++中如果一个文件中既有字符串又有整数,那么如何把这两种类型的数据分别读入并且存储在数组当中呢
在C++中如果一个文件中既有字符串又有整数,那么如何把这两种类型的数据分别读入并且存储在数组当中呢?最好把代码发给我,谢了,如果对的话一定采纳。...
在C++中如果一个文件中既有字符串又有整数,那么如何把这两种类型的数据分别读入并且存储在数组当中呢?最好把代码发给我,谢了,如果对的话一定采纳。
展开
2个回答
展开全部
文件 中的内容是字符串,还是整数,实际是用户自己确定的。当编写一个程序读 一个文件时,必须知道文件 的结构,才能正确的解析文件的内容,如果不知道文件解构,读出来的只能是一堆没有用的垃圾数据。
比如,一个文件文件只有一行数据:
92 88
是什么意思?可能是代表了两门课成绩的整数;也有可能是某个学生学号及平均成绩;至于是什么,以数字还是字符串存储,就只能用户定了。
比如文件中存放了N行数据,每行为一个学生的姓名 及学生的成绩;N<100;姓名最多四字;则可以用以下方法进行读取:
#include <stdio.h>
int main()
{
char students[100][9]; //存姓名
int score[100]; //存成绩
int n ; //记录读出多少人
int i;
FILE* fp = fopen("data.txt","r");//文件
if( fp == 0 )
{
printf("文件打开失败。");
return 0;
}
n = 0;
while( !feof(fp))
{
fscanf( fp,"%s %d",students[n],&score[n]);
n++;
}
fclose(fp);
printf("共读出%d条记录:\n",n);
for( i = 0;i< n;i++)
printf("第%d条 姓名:%s 成绩%d\n",students[i],&score[i]);
getchar();
return 1;
}
追问
哦,是这样,文件中第一行是一个整数,表示的是总人数,然后下面几行是名字和工作时间,其中有空格和回车,大概是这样的
3
Allan,James 5 8 8
Kobe,Brian 8 3 6
Bob,Dahk 4 5 3
追答
直接写的没验证,最后输出printf少了个i;
for( i = 0;i< n;i++)
printf("第%d条 姓名:%s 成绩%d\n",i+1, students[i],&score[i]);
2014-11-25
展开全部
这个需要定义两个数组 一个是int型 一个是char型
追问
应该是string型吧,因为是好多字母
应该是string型吧,因为是好多字母
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询