Strona 1 z 1
Wczytywanie liczb do tablicy z pliku tekstowego
Napisane: poniedziałek, 10 maja 2010, 15:09
przez wojt12322
Witam, mialem sporą przerwe z programowaniem, i wogóle moja wiedza tak i tak była nikła na ten temat wiec mam problem.
Code: Zaznacz cały
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
int main()
{
bool tablica[500];
int a, i;
ifstream liczby("liczby.txt");
if (!liczby)
{
cout << "Nie mozna otworzyc pliku";
getchar();
return 1;
}
while (!liczby.eof())
{
for (i=0; i<500; i++)
liczby << tablica[i];
}
liczby.close();
for (int i=0; i<500; i++)
cout << tablica[i];
getchar();
return 0;
}
Program nie działa, ale tyle zdołałem sam napisać.
Chcialbym napisac program ktory wczytuje liczby do tablicy jednoelementowej. Zeby mozna bylo je wyswietlic i wykonywac jakies operacje na nich. Liczby sa uporzadkowane w sposób:
121
42
367
47
532
656
Tylko już siedze nad tym ponad 3 h i nie moge nic wymyśleć, chodzi mi o proste rozwiazanie tego problemu.
Zmieniam troszkę tytuł posta.
Re: Wczytywanie liczb do tablicy
Napisane: poniedziałek, 10 maja 2010, 15:44
przez Morfidon
Witam,
Prawidłowy kod:
Code: Zaznacz cały
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int tablica[500] = {0};
int tmp = 0;
ifstream liczby("liczby.txt");
if (!liczby)
{
cout << "Nie mozna otworzyc pliku";
getchar();
return 1;
}
while (!liczby.eof())
liczby >> tablica[tmp++];
liczby.close();
for (int i=0; i<tmp; i++)
cout << tablica[i] << endl;
getchar();
return 0;
}
Popełnił Pan trochę błędów, jeżeli ma Pan pytania do poprawionego kodu to proszę pytać.
Pozdrawiam,
Arkadiusz Włodarczyk
Re: Wczytywanie liczb do tablicy
Napisane: poniedziałek, 10 maja 2010, 16:56
przez wojt12322
Moje pytania do kodu:
Code: Zaznacz cały
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int tablica[500] = {0}; // <----dlaczegotaki zapis
int tmp = 0;
ifstream liczby("liczby.txt");
if (!liczby)
{
cout << "Nie mozna otworzyc pliku";
getchar();
return 1;
}
while (!liczby.eof())
liczby >> tablica[tmp++] // <---- tablica[tmp++] te [tmp++] to jest tak jakby numer wiersza?;
A gdyby liczby były np podane tak:
32 5445 43434
45 434 4334
666 767 43434
444 566 4434
3456 5656 6753
Liczby oddzielone sa spacjami.
Jak by to wyglądało do wpisu tablicy 2- elementowej? Jak to Pan by powiedział jak zrobić oświecił by mnie Pan całkowicie...
A za poprzednią odpowiedz bardzo dziękuje...
Re: Wczytywanie liczb do tablicy
Napisane: poniedziałek, 10 maja 2010, 17:08
przez Morfidon
Zapis:
oznacza to samo co:
Code: Zaznacz cały
for (int i = 0; i < tablica.length; i++)
tablica[i] = 0;
czyli jest to wyzerowanie tablicy, powinno się tak zrobić, aby nie latały w tablicy jakieś śmieci.
tmp++ jest to post-inkrementacja, czyli najpierw wypisuje wartość tmp, a następnie wykonuje operację temp=temp+1
Jeżeli nie wie Pan co robi post-inkrementacja to znaczy, że nie oglądał Pan mojego kursu, zapraszam do zapoznania się z nim:
http://videokurs.pl/kurs-c.php
wojt12322 napisał(a):Jak by to wyglądało do wpisu tablicy 2- elementowej? Jak to Pan by powiedział jak zrobić oświecił by mnie Pan całkowicie...
Rozumiem, że chodzi Panu o tablice dwuwymiarową? To zależy od kontekstu. Wszystko w programowaniu tworzy się tak jak się chcę - dosłownie mówiąc.
Re: Wczytywanie liczb do tablicy z pliku tekstowego
Napisane: poniedziałek, 10 maja 2010, 18:19
przez wojt12322
Oglądałem kurs "Video Kurs C++ Algorytmy" ale to bylo rok temu, jak się z niego uczyłem, za tydzień mam mature, na szczęscie podstawę, i jedyne co potrzebuję ogranąć to tylko te wczytywtywanie plików a reszta jest w tym Pana kursie co oglądałem, więc mała powtórka i wszystko będzie dobrze. A co do tej tablicy 2-wymiarowej. chodzi mi oto że w zadaniach na maturze są niekiedy takie przyklady ze jest plik *txt w którym znajdują sie liczby tak jak wypisalem w poprzednim poście, i trzeba zsumować lewą z środkową i prawą i wynik zapisać do innej tablicy. Gdybym wiedział jak wypisać te liczby do tablicy z resztą zadania poradziłbym sobie.
Re: Wczytywanie liczb do tablicy z pliku tekstowego
Napisane: poniedziałek, 10 maja 2010, 20:19
przez Morfidon
Video Kurs C++ - Algorytmy to jest treningowy kurs, który zakłada, że ma się wiedzę z poprzedniego kursu.
No to nie lepiej wczytać kolejno 3 liczby, dodać je, a następnie zapisać w tablicy i tak robić z każdymi 3 napotkanymi liczbami? po co tu tablica dwuwymiarowa?
Re: Wczytywanie liczb do tablicy z pliku tekstowego
Napisane: wtorek, 11 maja 2010, 13:28
przez wojt12322
Gdy wczytuję ten plik:
http://www.nh-renewal.yoyo.pl/liczby.txt
składający się z 500 wierszy, wczytuje mi ten program tylko od 202 wiersza. Dlaczego nie wszystkie? I odstęp w postaci "enter" czyta jako "0".
Re: Wczytywanie liczb do tablicy z pliku tekstowego
Napisane: wtorek, 11 maja 2010, 14:58
przez Morfidon
Wczytuje wszystkie, tylko że konsola ma limit wyświetlania wierszy. Może Pan dla testu przepisać wartości z jednego pliku do drugiego.
Enter, a raczej pusty odstęp, czyta jako zero, bo program spodziewał się tam liczby całkowitej. Spotkał tam odstęp, więc rzutował go na l. całkowitą, którą jest 0.