永发信息网

在C++中如果一个文件中既有字符串又有整数,那么如何把这两种类型的数据分别读入并且存储在数组当中呢

答案:2  悬赏:20  手机版
解决时间 2021-03-24 04:26
在C++中如果一个文件中既有字符串又有整数,那么如何把这两种类型的数据分别读入并且存储在数组当中呢
最佳答案
文件 中的内容是字符串,还是整数,实际是用户自己确定的。当编写一个程序读 一个文件时,必须知道文件 的结构,才能正确的解析文件的内容,如果不知道文件解构,读出来的只能是一堆没有用的垃圾数据。
比如,一个文件文件只有一行数据:
92 88
是什么意思?可能是代表了两门课成绩的整数;也有可能是某个学生学号及平均成绩;至于是什么,以数字还是字符串存储,就只能用户定了。
比如文件中存放了N行数据,每行为一个学生的姓名 及学生的成绩;N<100;姓名最多四字;则可以用以下方法进行读取:
#include 
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);
    for( i = 0;i< n;i++)
        printf("第%d条  姓名:%s  成绩%d
",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]);
全部回答
这个需要定义两个数组 一个是int型 一个是char型追问应该是string型吧,因为是好多字母应该是string型吧,因为是好多字母
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
对生活暖暖的句子,关于奇迹暖暖有哪些唯美句
乳腺导管扩张,现在怀孕会加重吗
1000克面包粉可以做几个面包_相关食物
爱尚音乐会所在什么地方啊,我要过去处理事情
沧屿浴室在什么地方啊,我要过去处理事情
彩虹是什么写一句话,仿写句子,蜜蜂没有什么?
汽车贴膜品牌排行
冬天一整天脚都冰凉 是什么原因
我的美的空调发票和保修卡都丢了,还能免费保
求东财10春学期统计学在线作业答案
That was found to bein many developing cou
中国建设银行贝森路支行地址在什么地方,想过
我玩轩辕剑天之痕 是从仙山岛小湾这里回氏
石字旁加一个番字怎么念?
把真诚的祝福送给你,送给你明天的祝福。不管
推荐资讯
电脑如何查看wifan有多少人连接
米苏我想知道这个在什么地方
对食物的赞美经典句子,求赞美经典句子
伪声一般要练多久,足球如何才能练习好颠球
优品果侬在哪里啊,我有事要去这个地方
229x1÷11÷46 1÷44怎么做?
一袋菌种多少钱?另外一袋菌种可以出多少成品
求推荐几款平板娱乐直播用2500到3500左右
妈的,这个饿了么,点了个外卖差评居然没显示
如何正确填写中韩原产地证WO或WP原产地证标准
2016年儿童二级残疾有补贴吗
能用信用卡还贷款吗,信用卡可以贷款吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?