Jak odczytać dane z pliku jeśli mój plik jest podobny do tego z wartościami rozdzielonymi przecinkamiJak odczytu i zapisu do/z pliku tekstowego z wartościami rozdzielonymi przecinkami
1, 2, 3, 4, 5\n
6, 7, 8, 9, 10\n
\n
i po przeczytaniu pliku, chcę zapisać dane z powrotem do innego pliku w powyższym formacie.
mogę uzyskać całkowitą liczbę wierszy, używając
string line;
while(!file.eof()){
getline(file,line);
numlines++;
}
numline--; // remove the last empty line
ale skąd mam wiedzieć, całkowita liczba cyfr w rzędzie/linii ??
Mam również wektor ints do przechowywania danych. Tak więc, chcę przeczytać pierwszą linię, a następnie zliczyć całkowitą liczbę elementów w tym wierszu, tutaj 5 (1,2,3,4,5) i zapisać je w tablicy/wektorze, i przeczytać następną linię i zapisać je w wektor znowu i tak dalej, aż dojdę do EOF.
Następnie chcę napisać dane do pliku, ponownie, myślę, że to będzie wykonać zadanie zapisu danych do pliku,
numOfCols=1;
for(int i = 0; i < vector.size(); i++)
{
file << vector.at(i);
if((numOfCols<5) file << ",";//print comma (,)
if((i+1)%5==0)
{
file << endl;//print newline after 5th value
numOfCols=1;//start from column 1 again, for the next line
}
numOfCols++;
}
file << endl;// last new line
Więc moim głównym problemem jest to, w jaki sposób odczytać dane z pliku z wartościami oddzielonymi przecinkiem?
Dzięki
Co to oznacza? std :: stringstream linestream (linia); – Curious
Tworzy obiekt strumienia napisów. Działa jak strumień, na przykład std :: cin, std :: cout lub strumień plików std :: fstream, ale jako źródło danych używa łańcucha. W efekcie jest to strumień jednej linii. –
Kiedy próbuję skompilować, pojawia się ten błąd, zmienna 'std :: stringstream linestream 'ma inicjator, ale niekompletny typ. Zawarłem wszystkie wymagane nagłówki. – Curious