Wątek przeniesiony 2017-11-21 21:29 z C/C++ przez ŁF.

Wczytanie liczb pojedynczo, jeśli znajdują się w jednej linii pliku tekstowego

0

Jak sprawic by wczytac z pliku te liczby:

3540 3213 3245

ale pojedynczo? Tj. WYJSCIE:

3540
3213
3245
0

Co to znaczy pojedynczo?
Do osobnych zmiennych?
Do tablicy trójelementowej?

Do pobierania liczb z pliku najwygodniej użyć operator>>.

0
std::vector<int> tab;
int x;
while (cin >> x)
{
    tab.push_back(x);
}
0
YooSy napisał(a):

Co to znaczy pojedynczo?
Do osobnych zmiennych?
Do tablicy trójelementowej?

Do pobierania liczb z pliku najwygodniej użyć operator>>.

To są linijki w pliku:
Kamil Bączek
informatyka
3450 3223 4322
3

i chcialbym wypisac tylko te 3 liczby w 3eciej linijce ale oddzielnie

0

Już padł przykład wzór. Zamiast operatora >> dla strumienia cin używasz operatora >>, dla strumienia plikowego.
Pierwsze dwie linie można zignorować metodą ignore() lub pobrać getline() i odrzucić.

0
YooSy napisał(a):

Już padł przykład wzór. Zamiast operatora >> dla strumienia cin używasz operatora >>, dla strumienia plikowego.
Pierwsze dwie linie można zignorować metodą ignore() lub pobrać getline() i odrzucić.

czyli jak to zrobic dla tych pobieran ?

void czytanie2(string nazwaPliku)
{
	ifstream plikOdczyt;
	plikOdczyt.open(nazwaPliku.c_str(), ios::in);
	if (plikOdczyt.good())
	{
		string linia;
		int i = 1;
		while (!plikOdczyt.eof())
		{
			getline(plikOdczyt, linia);
			cout << linia << endl;
			i++;
		}
		plikOdczyt.close();
	}
}

void czytanie(string nazwaPliku)
{
	int licz = 0;
	ifstream plikOdczyt;
	plikOdczyt.open(nazwaPliku.c_str(), ios::in);
	char zn;
	if (plikOdczyt.good())
	{
		while ((zn = plikOdczyt.get()) != EOF)
		{
			cout << zn;
		}
	}
	
}
1
#include <iostream>
#include <fstream>
#include <limits>
using namespace std;

int main()
{
    ifstream file("test.txt");
    if (file) 
    {
        for (size_t i = 0; i < 2; ++i) { // ignorowanie dwóch linii z tekstem
            file.ignore(numeric_limits<streamsize>::max(), '\n');
        }

        int variable;
        for (size_t i = 0; i < 3; ++i) { // pobranie i wyświetlenie trzech żądanych wartości
            if (file >> variable) {
                cout << variable << '\n';
            }
            else {
                break;
            }
        }
    }
} 

Pod ten konkretny przypadek. Bardziej uniwersalnie trzeba pomyśleć.

0
  if (file >> variable) {

dziekuje za pomoc :) i mam jeszcez pytanko. Co oznacza ten if ?

0

file >> variable - operacja pobierania danych ze strumienia plikowego.
http://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt
W ten sposób odczytujesz czy udało się pobrać dane ze strumienia.

0
std::vector<int> tab;
int x;
string s;

while (cin)
{
    while (cin >> x)
    {
        tab.push_back(x);
    }
    cin.clear();
    cin >> s;
}

https://wandbox.org/permlink/oUF7T15HADxIXxYu

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