2013-10-01 5 views
0

Так что я получаю эту ошибку, когда компилирую свой код (ожидаемый ',' или ';' перед '{' токен {) Я знаю может быть много таких ошибок там на stackoverflow, но не может найти решение:expected ',' or ';' before '{' token {(C++)

Я новичок в C++. Вот код: я должен считывать данные из текстового файла (data.txt) и отобразить его:

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <math.h> 

int main(){ 

FILE *fptr; 
char country[5][20]; 
int population[5]; 
int landMass[5]; 
int option; 
int i; 
int countryOption; 
int gdp[5]; 
int populationDensity[5]; 
int gdpHead[5]; 

//open file for reading 
fptr = fopen("data.txt", "r");  

//Error checking 
if (fptr == NULL) {     
    printf("Unable to open data.txt"); 
    return(1); 
} 

//input from user 
printf("Hi welome to the country database!"); 
getchar(); 
system("cls"); 
printf("Select a country for information:\n"); 
printf("1)Canada\n"); 
printf("2)Italy\n"); 
printf("3)China\n"); 
printf("4)USA\n"); 
printf("5)Russia\n"); 
printf("6)All\n"); 
printf("Type in the option you want:"); 
scanf("%d", &option); 
system("cls"); 

//reads data from data.txt and assigns to variables 
for (i = 1; i <= 5; i++) { 
    fscanf(fptr, "%s %d %d %d", country[i], &population[i], &landMass[i], &gdp[i]); 
    populationDensity[i] = (population[i]/landMass[i]); 
    gdpHead[i] = ((gdp[i]*1000000)/population[i]); 

    if (option == 6) { 
     printf("Here is info on all the countries in our database:\n"); 
     printf("Country: %s\n", country[i]);  
     printf("Population: %d\n", population[i]); 
     printf("LandMass: %d\n", landMass[i]); 
     printf("GDP: %d\n", gdp[i]); 
     printf("Population density: %d\n", populationDensity[i]); 
     printf("Population density: %d\n\n\n", gdpHead[i]); 
    } 
}  

void countrySelection(int countryOption) 
{ 
    printf("Here is some info on the country you chose:\n"); 
    printf("Country: %s\n", country[countryOption]);  
    printf("Population: %d\n", population[countryOption]); 
    printf("LandMass: %d\n", landMass[countryOption]); 
    printf("GDP: %d\n", gdp[countryOption]); 
    printf("Population density: %d\n", populationDensity[countryOption]); 
    printf("Population density: %d\n\n", gdpHead[countryOption]); 
} 

//function that prints the info 
if (option < 6) { 
    countrySelection(option); 
}     

fclose(fptr); 
system("pause"); 
return(0); 

} 

data.txt выглядит следующим образом:

Canada 
42000000 
9984670 
1821000 
Italy 
60920000 
3
2013000 
China 
1351000000 
9706961 
8227000 
USA 
313900000 
9826675 
15680000 
Russia 
143000000 
17098246 
2015000 

Любой один есть ключ Что касается проблемы?

+2

Сократите свой код до [SSCCE] (http://sscce.org). – chris

+0

Закрывающая скобка для main(), по-видимому, отсутствует. –

+0

Im также получает эту ошибку: определение функции здесь не допускается до '{' token – user2836816

ответ

2

Вы определяете void countrySelection(int countryOption) внутри основной функции, которая недопустима в C++.

Перемещение функции над основной функцией и ее компиляция. Также вы должны определить переменные, используемые в countrySelection, как глобальные переменные, иначе функция не будет иметь к ним доступа.

+0

Я определил их как глобальные, но всякий раз, когда я запускаю программу и вызываю функцию, выбирая одну из опций ... (canada, usa, russia) Я не получаю никакого вывода – user2836816

+0

yes I did -------- – user2836816

+0

Ваш цикл загрузки имеет неправильную итерацию, измените ее на «int i = 0; i <5; i ++». См. Мой комментарий по вопросу для получения дополнительной информации. –

Смежные вопросы