Witam państwa. Napotkałem problem w swoim programie otóż w pliku txt mam zapisane liczby oddzielone spacją i mam napisać program który wyświetli tylko te liczby które są większe od 100. Jak to zrobić ?
0
0
Wczytuj (std::fstream
), sprawdzaj czy są większe od 100 i wyświetlaj.
0
Może lepiej podam panu kod który napisałem
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
string linia;
string liczby [100] ;
int nr_linii=1;
ifstream plik;
plik.open("plik_wejsciowy.txt", ios::in);
if(plik.good()==false)
{
cout<<"Plik nie istnieje!"<<endl;
exit(0);
}
for(int i=0; i<100; i++)
{
plik >> liczby[i];
}
for(int i=0; i<100; i++)
{
cout<<liczby[i]<<endl;
}
cout<<endl<<"Nacisnij enter aby zakonczyc program...";
cin.ignore();
cin.get();
}
1
Wczytuj liczby, nie stringi. Poza tym, teraz wczytujesz równo 100 liczb, a nie liczby i nie sprawdzasz ich wartości
0
Czy mógłbym poprosić Pana od podpowiedź w postaci przerobienie kodu ?
1
int main()
{
std::ifstream f("numbers.txt");
int n;
while(f >> n)
if(n > 100)
std::cout << n << '\n';
}
0
Bardzo Panu dziękuję
Miałbym jeszcze jedno pytanie do Pana a jakbym chciał teraz te liczby zapisać do pliku aby były oddzielone spacją to zamienić na string ?
0
Bez przesady z tymi panami. Możesz przekierować wyjście procesu:
./a.out > out.txt
Ewentualnie w kodzie:
int main()
{
std::ifstream in("numbers.txt");
std::ofstream out("out.txt");
int n;
while(in >> n)
if(n > 100)
out << n << ' ';
}