bezpieczne parsowanie wartości z pliku do int

0

Hej. Mam w pliku w pierwszej linijce wartość, którą chciałabym bezpiecznie zwrócić jako int (bez żadnych overflow'ow i takich tam). no i mam dwa pytanka:

  1. co zrobi funkcja atoi gdy dostanie wartość w char* dłuższą niż int?
  2. Czy wywołanie fgets bez pętli jeden raz jest okey? (interesuje mnie tylko pierwsza linia)
    Pozdrawiam
1

Dzisiaj robiłem to tak:

int i; //ta która będzie naszym int
string temp; //ta jako czasowa

fstream plik;

plik.open("naszpliczek.txt", ios::in);

//tutaj moglibyśmy dodać sprawdzacz czy plik otwarty to jest:
if ( plik.good() )  //test poprawnosci pliku
{ cout << "\nStreet data opened!"; }
else { cout << "\nOpening street data failure! :("; }


getline(plik, temp, ' '); //w cudzysłowiu znak rozdzielający

istringstream iss(temp);
iss >> i;  // koniec
3
int value;
FILE *fd=fopen("plik.txt","r");
if(fd)
  {
   if(fscanf(fd,"%d",&value)==1)
     {
      printf("wczytano %d\n",value);
     }
   else printf("Na poczatku pliku nie liczba\n");
   fclose(fd);
  }
else printf("brak pliku\n");

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