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

2024-11-08 19:27:13
推荐回答(2个)
回答(1):

文件 中的内容是字符串,还是整数,实际是用户自己确定的。当编写一个程序读 一个文件时,必须知道文件 的结构,才能正确的解析文件的内容,如果不知道文件解构,读出来的只能是一堆没有用的垃圾数据。

比如,一个文件文件只有一行数据:

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",n);
    for( i = 0;i< n;i++)
        printf("第%d条  姓名:%s  成绩%d\n",students[i],&score[i]);    
    
    getchar();
    return 1;
}

回答(2):

这个需要定义两个数组 一个是int型 一个是char型