Jak sprawic by wczytac z pliku te liczby:
3540 3213 3245
ale pojedynczo? Tj. WYJSCIE:
3540
3213
3245
Wątek przeniesiony 2017-11-21 21:29 z C/C++ przez ŁF.
Jak sprawic by wczytac z pliku te liczby:
3540 3213 3245
ale pojedynczo? Tj. WYJSCIE:
3540
3213
3245
Co to znaczy pojedynczo?
Do osobnych zmiennych?
Do tablicy trójelementowej?
Do pobierania liczb z pliku najwygodniej użyć operator>>
.
std::vector<int> tab;
int x;
while (cin >> x)
{
tab.push_back(x);
}
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
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ć.
YooSy napisał(a):
Już padł przykład wzór. Zamiast operatora
>>
dla strumieniacin
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;
}
}
}
#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ć.
if (file >> variable) {
dziekuje za pomoc :) i mam jeszcez pytanko. Co oznacza ten if ?
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.
std::vector<int> tab;
int x;
string s;
while (cin)
{
while (cin >> x)
{
tab.push_back(x);
}
cin.clear();
cin >> s;
}