fstream ujemne liczby, optymalizacja kodu

0
char BOCZKI[12]={'a','b','c','a','b','c','x','y'};
int BOKI[7];
double dlugosc[2];
char bok[3]={'a','b','c'};

//-------------------------------------------------------pobiera współrzędne z pliku .txt------------------------------------------------------
ifstream wspolrzedne("trokaty.txt");
if (!wspolrzedne)
{
cout<<"!Nie mozna otworzyc pliku zawierajacego wspolrzedne wierzcholkow trojkata!";
}

else
{

while(!wspolrzedne.eof())
{
wspolrzedne>>pomoc;
if(pomoc)
for(i=0;i<=5;i++) //Zapisywanie współrzędnych trójkątów do tablicy, w celu ich łatwego wypisania
wspolrzedne>>BOKI[i];
cout<<BOKI[0]<<"<--------------POWINNO PISAC -1"<<endl; //wiersz TESTOWY
}
}

cout<<"Wartosci bokow z pliku trokaty.txt to: "<<endl<<endl;

for(i=0;i<=5;i++) {
cout<<BOCZKI[j]<<BOCZKI[i]<<" = "<<BOKI[i]<<" ";
if (i==2){ j=7; cout<<'\t';}
}




xa=BOKI[0]; //przypisujemy wartosci tablicy zmiennym
xb=BOKI[1]; //ułatwi nam to pracę podczas późniejszego
xc=BOKI[2]; //wywoływania funkcji
ya=BOKI[3];
yb=BOKI[4];
yc=BOKI[5];




dlugosc[0]=sqrt((xb-xa)*(xb-xa)+(yb-ya)*(yb-ya));
dlugosc[1]=sqrt((xc-xb)*(xc-xb)+(yc-yb)*(yc-yb));
dlugosc[2]=sqrt((xa-xc)*(xa-xc)+(ya-yc)*(ya-yc));

a=dlugosc[0];
b=dlugosc[0];
c=dlugosc[0];

for(i=0;i<3;i++) //Wypisujemy policzone długości boków
{
cout<<endl<<endl<<"dlugosc boku "<<bok[i]<<" wynosi: "<<endl<<dlugosc[i];
cout<<" ... czyli w przyblizeniu "<<round(dlugosc[i]);
}

cout<<endl<<endl; //wyświetlamy długości boków liczonych ze współrzędnych;


getchar();
return 0;
}

Pierwsza wartość z pliku txt z którego pobierane są dane to -1
(wszystkie to: -1 2 3 4 7 -6)
Co zrobić żeby pierwsza wartość ujemna została pobrana? Aktualnie pierwsza wartość czyli '-1' jest pomijana, i pierwsza liczba wpisywana do tablicy to druga z kolei czyli '2'

I jak to zrobić żebym mógł łatwo wprowadzić i wypisać zmienne wierzchołków trójkąta, przy jednoczesnym łatwym ich wprowadzaniu do wzorów?
Wpisywanie do wzorów tablic od wartości raczej odpada, a jeśli na początku przypisze wartości zmiennym 'x y z' to będę je potem musiał wypisać ręcznie... Tym gorzej że pasowałoby dopisać je trzeci raz -->żeby podać z jakich wierzchołków liczyłem poszczególne boki.

gg:32784420

0

Tyle już napisałem sam... nawet prostej odpowiedzi nie można uzyskać

0

Masz przykład odczytu liczb rzeczywistych z pliku :

 
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
  FILE * pFile;
  vector<float> liczby;
  int n=0;
  float a;
  
  pFile = fopen ("e:\\g3.txt","r");
  if (pFile==NULL) perror ("Error opening file");
  else
  {
   while(fscanf(pFile,"%f",&a)!=EOF)
    {
      liczby.push_back(a);
      n++;
    }
  }
    fclose (pFile);     

for(int i=0;i<liczby.size();i++)  cout<<liczby[i]<<" "; 
  cin.sync();
  cin.get();
  return 0;
}

0

Brawo,
jakbyś nie zauważył to liczby pobierało, widzę że nabijasz posty

Błędem było przypisanie pierwszej wartości zmiennej 'pomoc' która nie była w ogóle używana

1 użytkowników online, w tym zalogowanych: 0, gości: 1