• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wczytywanie liczb z pliku i wypisywanie ich w programie (C++)

Object Storage Arubacloud
0 głosów
8,923 wizyt
pytanie zadane 12 czerwca 2016 w C i C++ przez Majkel00 Nowicjusz (230 p.)

Witam serdecznie, po raz kolejny męcze się z zadaniem maturalnym, a w zasadzie utknąłem z niewiadomych mi przyczyn już na początku. Problem wygląda następująco, mam do wczytania 200 liczb całkowitych z zakresu od 2 do 1000000, z pliku tekstowego do programu. Wszystko przebiega w porządku, do momentu gdy próbuje wypisać, którąś z tych liczb na ekranie - wówczas otrzymuję całkowicie inną liczbę, znacznie większą. Oto mój kod:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    int A[200];
    ifstream dane("liczby.txt");
    for(int i=0; i<200;i++)
        dane >> A[i];

    for(int i=0; i<200;i++)
        cout << A[i] << endl;
    return 0;
}

Przykładowo z pliku wczytuję liczbę: 369362, a ekranie otrzymuję 1965856986. Wydawało mi się, że typ int pomieści tego typu liczby, ale prawdopodobnie tutaj leży gdzieś błąd w tym zadaniu. Uprzedzam wątpliwości, plik z danymi mam wrzucony na dysk C, aby nie wczytywać po milionie ścieżek, więc raczej nie tutaj leży problem. 


Proszę o pomoc!

1 odpowiedź

–1 głos
odpowiedź 12 czerwca 2016 przez zkkf56 Dyskutant (8,710 p.)
wybrane 12 czerwca 2016 przez Majkel00
 
Najlepsza

Obejrzyj odc 7 kursu c++ P. Mirosława Zelenta

https://www.youtube.com/watch?v=h2Taf16gQDI

 

PS. Po 1 nie piszemy IFSTREAM tylko fstream, po 2 czemu jest Ifstream Dane("liczby.txt")????

Obejrzyj 7 odcinek C++ dużo Ci pomoże :)

komentarz 12 czerwca 2016 przez Majkel00 Nowicjusz (230 p.)
Czytałem te instrukcje, tylko sam chyba zauważyłeś, że nie ma tam słowa o lokalizacji pliku z którego pobieramy dane. Nie miałem problemu z instrukcjami wczytania, sam zauważyłeś w czym leżał kłopot.
komentarz 12 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)

Twój kod>

#include <iostream> 
#include <fstream>
using namespace std;
int main() 
{ 
    int A[200]; 
    ifstream dane("liczby.txt"); 
    for(int i=0; i<200;i++) 
        dane >> A[i];
    for(int i=0; i<200;i++) 
        cout << A[i] << endl; 
    return 0; 
}

A w instrukcji pisze plik.open (), więc raczej słabo przeczytałeś

komentarz 12 czerwca 2016 przez Majkel00 Nowicjusz (230 p.)

Chcesz na prawdę zrobić ze mnie idiotę, czy o co Ci chodzi?

Deklaracja obiektu wygląda tak, jak każdej innej zmiennej w C++. Wybierzmy dla niego nazwę
„wejscie”:
ifstream wejscie;
Teraz kojarzymy program z konkretnym plikiem na dysku — niech nazywa się, na przykład,
dane.txt:
wejscie.open(”dane.txt”);
Od tej chwili zmienna strumieniowa wejscie pobiera kolejne dane z pliku dane.txt. Nadmieńmy
jeszcze, że te dwie instrukcje można połączyć w jedną, mającą ten sam skutek:
ifstream wejscie(”dane.txt”);

komentarz 12 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)

No stoi jak wół>

Aby dopisać nowe dane na koniec istniejącego pliku, trzeba użyć instrukcji: ofstream plik; plik.open(”wynik.txt”,ios::app); Oczywiście można użyć wariantu z pojedynczą instrukcją: ofstream plik(”wynik.txt”,ios::app); 

noi stoi plik.open("wynik.txt",ios:app);

komentarz 12 czerwca 2016 przez Majkel00 Nowicjusz (230 p.)
Ja nie chcę niczego dopisywać, chciałem tylko uzyskać dane z pliku, nie nadpisywać niczego.

Podobne pytania

0 głosów
3 odpowiedzi 464 wizyt
0 głosów
2 odpowiedzi 2,217 wizyt
pytanie zadane 1 lutego 2016 w Rozwój zawodowy, nauka, praca przez Pawel9922 Nowicjusz (160 p.)
+1 głos
0 odpowiedzi 332 wizyt
pytanie zadane 12 marca 2022 w C i C++ przez letmestay Użytkownik (520 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...