• 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++)

VPS Starter Arubacloud
0 głosów
8,827 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 446 wizyt
0 głosów
2 odpowiedzi 2,194 wizyt
pytanie zadane 1 lutego 2016 w Rozwój zawodowy, nauka, praca przez Pawel9922 Nowicjusz (160 p.)
+1 głos
0 odpowiedzi 323 wizyt
pytanie zadane 12 marca 2022 w C i C++ przez letmestay Użytkownik (520 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...