651519611 发表于 2020-11-28 22:06:31

为什么打不出来数据呢

#include <stdio.h>
#include <string.h>
#define MAXSTR 100
int income_lev, year; // to record which year and income level does user choice//
int country_num = 0, data_num = 0;

struct Country
{
        char country_name;
        char income_level;
        char region;
        struct Data
        {
                char year;
                char percent;
        } data;
} country;


void user_choice()// let user to choose the year and income level they want//
{
        printf("Please enter a year which you want to search:\n");
        scanf("%d", &year);
        printf("Please enter an income level which you want to search\n\
        1 corresponds to 'low income'\n\
        2 corresponds to 'lower middle income'\n\
        3 corresponds to 'upper middle income'\n\
        4 corresponds to 'high income'\n");
        scanf("%d", &income_lev);
}

void record_data(char line)
{
        int i;
       
        for(i=0; i<51; i++)
        {
                country.country_name = line;
        }
        for(i=51; i<58; i++)
        {
                country.income_level = line;
        }
        for(i=59; i<62; i++)
        {
                country.data.percent = line;
        }
        for(i=62; i<87; i++)
        {
                country.region = line;
        }
        for(i=88; i<92; i++)
        {
                country.data.year = line;
        }

        if (strcmp(country.country_name, country.country_name) != 0 || country_num == 0)
                {
                        country_num += 1;
                        data_num = 0;
                        //printf("C:%d\n",country_num);
                }
        else
                {
                        data_num += 1;
                        //printf("D:%d\n",data_num);
                }               
}

int main ()
{
   FILE *fp;
   char str;
   int i=1;
   

   fp = fopen("measles.txt" , "r");
   if(fp == NULL)
   {
                perror("Error opening file");
                return(-1);
   }
   
   while( fgets (str, MAXSTR, fp)!=NULL )
   {
                   //printf("%s", str);
                   record_data(str);
   }

   fclose(fp);
   
   //user_choice();
   /*for(i=0; i<200; i++)
    {
            puts(country.country_name);
            puts(country.region);
            puts(country.income_level);
                   puts(country.data.year);
                   puts(country.data.percent);
        }*/
        for(i=0; i<33; i++)
        {
                printf("%s %s\n", country.data.year, country.data.percent);
        }
        return(0);
}

651519611 发表于 2020-11-28 22:09:01

#include <stdio.h>
#include <string.h>
#define MAXSTR 100
int income_lev, year; // to record which year and income level does user choice//
int country_num = 0, data_num = 0;

struct Country
{
        char country_name;
        char income_level;
        char region;
        struct Data
        {
                char year;
                char percent;
        } data;
} country;


void user_choice()// let user to choose the year and income level they want//
{
        printf("Please enter a year which you want to search:\n");
        scanf("%d", &year);
        printf("Please enter an income level which you want to search\n\
        1 corresponds to 'low income'\n\
        2 corresponds to 'lower middle income'\n\
        3 corresponds to 'upper middle income'\n\
        4 corresponds to 'high income'\n");
        scanf("%d", &income_lev);
}

void record_data(char line)
{
        int i;
       
        for(i=0; i<51; i++)
        {
                country.country_name = line;
        }
        for(i=51; i<58; i++)
        {
                country.income_level = line;
        }
        for(i=59; i<62; i++)
        {
                country.data.percent = line;
        }
        for(i=62; i<87; i++)
        {
                country.region = line;
        }
        for(i=88; i<92; i++)
        {
                country.data.year = line;
        }

        if (strcmp(country.country_name, country.country_name) != 0 || country_num == 0)
                {
                        country_num += 1;
                        data_num = 0;
                        //printf("C:%d\n",country_num);
                }
        else
                {
                        data_num += 1;
                        //printf("D:%d\n",data_num);
                }               
}

int main ()
{
   FILE *fp;
   char str;
   int i=1;
   

   fp = fopen("measles.txt" , "r");
   if(fp == NULL)
   {
                perror("Error opening file");
                return(-1);
   }
   
   while( fgets (str, MAXSTR, fp)!=NULL )
   {
                   //printf("%s", str);
                   record_data(str);
   }

   fclose(fp);
   
   //user_choice();
   /*for(i=0; i<200; i++)
    {
            puts(country.country_name);
            puts(country.region);
            puts(country.income_level);
                   puts(country.data.year);
                   puts(country.data.percent);
        }*/
        for(i=0; i<33; i++)
        {
                printf("%s %s\n", country.data.year, country.data.percent);
        }
        return(0);
}

风过无痕1989 发表于 2020-11-28 23:02:24

651519611 发表于 2020-11-28 22:09


第 77 行:fp = fopen(measles.txt,"r");// 文件名不能作为参数, 并且 measles.txt 的文件路径要正确
页: [1]
查看完整版本: 为什么打不出来数据呢