Wczytywanie danych string

0

Witam,
Potrzebuje wczytać dane z pliku, wczytuje funkcją getline i nie wiem dlaczego nie chce mi ich zapisać.Gdy poza pętlą próbuje odczytać std::string cout<<dane. nic nie wyświetla .Generalnie potrzebuje odczytać liczby z pliku aby je porównać czy np liczba 123 i 0123 czy liczba 123 zawiera się w 0123. Pomyślałem że najlepiej będzie poprzez string ale teraz jestem w kropce.Macie jakieś pomysły?

 
		#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>

  std::fstream plik( "Liczby.txt", std::ios::in ); 
    std::string dane;
  
    while( !plik.eof() )
        {
            getline( plik, dane );
            std::cout << dane << std::endl;
        }
        


}
0

Podaj ten kod który nie działa.

0

Już mi działa, teraz mam problem

    int main()
    {
  std::fstream plik( "Liczby.txt", std::ios::in ); //zakładamy, że plik istnieje
    std::string dane;
  
    while( !plik.eof() )
        {
            getline( plik, dane );

        }
         

Wczytuje te liczby są one zapisane tak:
2
3
503
77
503015
2
21
321
a to jest treść zadania :
W pierwszej linii wejścia znajduje się liczba naturalna Z (1 ≤ Z ≤ 500) określająca ilość zestawów danych. W kolejnych liniach znajduje się Z zestawów danych.

W pierwszej linii każdego zestawu danych znajduje się jedna liczba naturalna n (2 ≤ n ≤ 1000) oznaczająca ilość wszystkich numerów telefonów jakie do tej pory udało nam się sprzedać. W kolejnych n liniach znajdują się numery telefonów. Każdy numer jest nie dłuższy niż 6 cyfr.

Nie mam teraz pomysłu jak zrobić aby wczytywać te numery, jak odczytać każdą linie oddzielnie ?

0

Potrzebujesz tego:

unsigned n;
cin>>n;
while(n--)
  {
   unsigned phone;
   cin>>phone;
  }
0

Możesz wytłumaczyć co dokładnie ta pętla robi ?

0

Wczytuje liczbę ze standardowego wejścia.

0

A jak porównać dwie linie ze sobą np.
503
77

0
if((prevphone)&&(prevphone<phone)) { ... }
cin>>phone;
prevphone=phone;

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