Cześć, mam pewien problem, a mianowicie, problem z dzialaniem ifa w programie... Program ma na celu jedynie przećwiczenie pewnych umiejętności (czyt. zapis do pliku), więc może nie ma większego sensu, no ale mimo wszystko nie otrzymuje porządanego efektu. Oto kod
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <stdio.h>
#include <fstream>
#include <conio.h>
using namespace std;
int month, first[31], sec[30], thrd[28], choose;
int main()
{
start:
cout<<"Podaj numer miesiaca: ";
if(!(cin>>month))
{
cerr<<"TO NIE JEST LICZBA!";
getchar();getchar();//stdio.h
system("cls");
goto start;
}
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
{
cout<<endl<<"Wybrales 31-dniowy miesiac, wpisz teraz calkowite wartosci temp wystepujace przez kolejne 31 dni: ";
for (int i=0; i<=30; i++)
{
cout<<"\n"<<i+1<<". ";
cin>>first[i];
}
fstream plik;
plik.open("miesiac31",ios::out|ios::app);
plik<<"\nMiesiac: "<<month<<endl;
for (int i=0; i<=30; i++)
{
plik<<"\nDzien "<<i+1<<": "<<first[i];
}
plik.close();
cout<<"Zapisywanie danych...";
Sleep(1000);
}
break;
case 4:
case 6:
case 9:
case 11:
{
cout<<endl<<"Wybrales 30-dniowy miesiac, wpisz teraz calkowite wartosci temp wystepujace przez kolejne 30 dni: ";
for (int i=0; i<30; i++)
{
cout<<"\n"<<i+1<<". ";
cin>>sec[i];
}
fstream plik2;
plik2.open("miesiac30", ios::out|ios::app);
plik2<<"\nMiesiac: "<<month<<endl;
for (int i=0; i<30; i++)
{
plik2<<"\nDzien "<<i+1<<": "<<sec[i];
}
plik2.close();
cout<<"Zapisywanie danych...";
Sleep(1000);
}
break;
case 2:
{
errorr:
cout<<endl<<"Wybrales 28/29-dniowy miesiac, zdecyduj ile dni ma miesiac w tym roku: \n1.28 dni\n2.29 dni";
choose=getch(); //conio.h
if(choose=='1')
{
cout<<"\n\nWypisz teraz temp wystepujace przez kolejne 28 dni: ";
for (int i=0; i<28; i++)
{
cout<<"\n"<<i+1<<". ";
cin>>thrd[i];
}
}
else if(choose=='2')
{
cout<<"\n\nWYpisz teraz temp wystepujace przez kolejne 29 dni: ";
for (int i=0; i<29; i++)
{
cout<<"\n"<<i+1<<". ";
cin>> thrd[i];
}
}
else
{
cout<< "\n\nBŁEDNY ZNAK!";
getchar();getchar();
system("cls");
goto errorr;
}
}
fstream plik3;
plik3.open("miesiac2829", ios::out|ios::app);
plik3<<"\nMiesiac: "<<month<<endl;
if(choose=='1')
{
for (int i=0; i<28; i++)
{
plik3<<"\nDzien "<<i+1<<": "<<thrd[i];
}
}
else if(choose=='2')
{
for (int i=0; i<29; i++)
{
plik3<<"\nDzien "<<i+1<<": "<<thrd[i];
}
}
cout<<"Zapisywanie danych...";
Sleep(1000);
break;
}
return 0;
}
Ok a teraz problem, chodzi o ostatniego ifa: a mianowicie o to ze przy wpisaniu powyżej 2 (w przypadku 29 dni) program nie zapisuje danych dotyczących temperatur. Jezeli wpisalismy 1 dane sa zapisywane... Dla czego? :(
Prosiłbym o odpowiedź, radę, cokolwiek. Za wszelakie zainteresowanie dziękuje i pozdrawiam! :)