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

question-closed Problem z odczytem pliku lekcja 7

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
563 wizyt
pytanie zadane 15 kwietnia 2015 w C i C++ przez falauthy Stary wyjadacz (11,550 p.)
zamknięte 16 kwietnia 2015 przez falauthy

Cześć,

Postawnowiłem dalej męczyć programowanie po kilku dniach przerwy (kolokwia na uczelni) i zabrałem się za odcinek nr 7. Chodzi o odczyt pliku. Gdy chcę wczytać plik, to wyskakuje mi opcja "Plik nie istnieje", a problem w tym, że istnieje. Jest on w folderze z projektem, są zapisane 3 linijki, kod podobny jak u Pana Mirosława, ale nie chcę działac. Jakieś pomysły?

#include <iostream>
#include <fstream> //do plikow
#include <cstdlib>

using namespace std;

string imie, nazwisko, linia;
int nrTelefonu, nrLinii=1;
fstream plik;

int main()
{
    plik.open("wizytkowka.txt", ios::in);

    if(plik.good()==false)
    {
        cout << "Plik nie istnieje!";
        exit(0);
    }

    while(getline(plik, linia))
    {
        switch(nrLinii)
        {
            case 1: imie = linia; break;
            case 2: nazwisko = linia; break;
            case 3: nrTelefonu = atoi(linia.c_str()); break;
        }
        nrLinii++;
    }
    cout<< imie << endl;
    cout << nazwisko << endl;
    cout << nrTelefonu << endl;

    plik.close();
    return 0;
}

 

komentarz zamknięcia: Problem rozwiązany.

10 odpowiedzi

+1 głos
odpowiedź 15 kwietnia 2015 przez Kelmac Gaduła (3,970 p.)
wybrane 15 kwietnia 2015 przez falauthy
 
Najlepsza
Plik musi się znajdować albo w katalogu skąd odpalasz EXE albo w projekcie gdzie go kompilujes zi odpalasz
komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
Dałem go najpierw tam gdzie exe, to nie działa, później wrzuciłem tam gdzie plik cpp i też nie działa.
komentarz 16 kwietnia 2015 przez Kelmac Gaduła (3,970 p.)
Sprawdź czy w Windowsie nie masz ukrytego rozszerzenia plików, bo jak stworzyśz plik wizytkowka.txt to faktycznie amsz wizytkowka.txt.txt . (Wielkośc liter ma znaczenie  - ale chybaa wiesz)
komentarz 16 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
Problem rozwiązany. :)
+1 głos
odpowiedź 15 kwietnia 2015 przez Kelmac Gaduła (3,970 p.)
Nie masz  tego pliku   otwartego w innym programie (np notatnik)??. Możesz nie mieć uprawnień do otwaracia tego pliku
0 głosów
odpowiedź 15 kwietnia 2015 przez Ehlert Ekspert (214,270 p.)
edycja 15 kwietnia 2015 przez Ehlert

1. Czy plik jest w folderze z plikiem main.cpp?
2. Czy nie nazwałeś pliku plik.txt.txt?

 

int main()
{
	fstream plik("wizytkowka.txt", ios::in);

	if (plik.good())
	{
		cout << "Plik istnieje!";

		while (std::getline(plik, linia))
		{
			switch (nrLinii)
			{
			case 1: imie = linia; break;
			case 2: nazwisko = linia; break;
			case 3: nrTelefonu = atoi(linia.c_str()); break;
			}
			nrLinii++;
		}
		cout << imie << endl;
		cout << nazwisko << endl;
		cout << nrTelefonu << endl;
	}
	else
	{
		cout << "error!";
	}

	plik.close();
	return 0;
}


 

komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
1. Tak

2. Nie.
komentarz 15 kwietnia 2015 przez Ehlert Ekspert (214,270 p.)

napisałeś/łaś wizytkowka, sprawdź  czy nie ma literówki.

komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
W folderze jest tak samo nazwany.
komentarz 15 kwietnia 2015 przez Ehlert Ekspert (214,270 p.)

Dziwna sprawa mi też nie działa frown

komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
Właśnie mnie to też dziwi. :/
0 głosów
odpowiedź 15 kwietnia 2015 przez daan Pasjonat (17,640 p.)
a czy nie powinno byc wizytowka.txt ? bo cos mi literówką pachnie :D
komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
To chyba nie ma znaczenia. :p Znaczy no plik w folderze mam też nazwany jak w kodzie.
komentarz 15 kwietnia 2015 przez daan Pasjonat (17,640 p.)
dodaj biblioteke <string> :) (po dodaniu u mnie w visual studio dziala plik znajduje się razem z plikiem main.cpp)
komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
Też nie to. Program ogólnie działa, ale w konsoli wywala mi, że plik nie istnieje.
komentarz 15 kwietnia 2015 przez daan Pasjonat (17,640 p.)
no to musisz mieć w takim razie literówke, bo skopiowałem twój kod, skompilowałem u siebie, błędy powodał na początku brak <string> dodałem i otworzył mi plik o takiej nazwie i wypisał to co tam wpisałem :)
komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
Zmieniłem literówkę, dodałem string i dalej to samo. U Pana Mirosława nie ma nawet tej biblioteki.
komentarz 15 kwietnia 2015 przez daan Pasjonat (17,640 p.)
Prawdopodobnie MinGW gdzieś ją sam dodał albo coś :) kompilator visual studio nie pozwoli nawet wypisać string na cout bez biblioteki :D w każdym razie kod jest poprawny, nie wiem narazie co może być przyczyną
0 głosów
odpowiedź 15 kwietnia 2015 przez Aress Mądrala (6,410 p.)
a jak wejdziesz we wlasciwosci tego pliku tekstowego tam jest rozszerzenie napisz jakie masz
komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
We własciwościach mam .txt
komentarz 15 kwietnia 2015 przez Aress Mądrala (6,410 p.)
popraw nazwe pliku i ajki typ bo to ze w nazwie jest wizytowka.txt to znaczy ze twoj plik nazywa sie wizytowka.txt.txt.

 

a zeby normalnie bylo to musisz w nazwie miec "wizytowka" a w typie

Dokument tekstowy (.txt)
komentarz 15 kwietnia 2015 przez daan Pasjonat (17,640 p.)
to zależy czy ma włączone pokazywanie rozszerzeń plików w nazwie :)
komentarz 15 kwietnia 2015 przez Aress Mądrala (6,410 p.)
no masz racje ale skoro nie dziala to stwierdzilem ze moze w druga strone :P

warto sprobowac, dlatego ladnie to opisalem

Po za tym plik powinien byc tam gdzie plik main.cpp
0 głosów
odpowiedź 15 kwietnia 2015 przez Aress Mądrala (6,410 p.)

masz problem z tym plikiem nie z kodem bo u mne dziala normalnie i dobrze otwiera

 

#include <iostream>
#include <fstream> //do plikow
#include <cstdlib>

using namespace std;

string imie, nazwisko, linia;
int nrTelefonu, nrLinii=1;
fstream plik;

int main()
{
    plik.open("Wizytowka.txt", ios::in);

    if(plik.good()==false)
    {
        cout << "Plik nie istnieje!";
        exit(0);
    }

    while(getline(plik, linia))
    {
        switch(nrLinii)
        {
            case 1: imie = linia; break;
            case 2: nazwisko = linia; break;
            case 3: nrTelefonu = atoi(linia.c_str()); break;
        }
        nrLinii++;
    }
    cout<< imie << endl;
    cout << nazwisko << endl;
    cout << nrTelefonu << endl;

    plik.close();
    return 0;
}

 

0 głosów
odpowiedź 15 kwietnia 2015 przez Kelmac Gaduła (3,970 p.)
Skopiuj plik tam gdzie masz program wykonywalny, i ten program odpal normlanie, nie przez IDE
0 głosów
odpowiedź 15 kwietnia 2015 przez bossik21 Mądrala (5,750 p.)

U mnie ten twoj program działa...


wizytkowka.txt :

 

Konsola:

 

 

Ewntualnei wrzuć plik do katalogu w którym masz plik (wizytkowka.txt)   do katalogu gdzie masz skompilowaną wersję programu.

 

Jeżeli nie zadziałą to podaj pęłną ściężkę  do pliku wizytkoka.txt .

0 głosów
odpowiedź 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
Dooobra Panowie mój błąd. Jednak problem z katalogiem - powinienem iść do okulisty. :D Dzięki wszystkim za pomoc. ^^
–1 głos
odpowiedź 15 kwietnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Hehe, masz plik "wizytKowka.txt" w programie, zamiast "wizytowka.txt" :D
komentarz 15 kwietnia 2015 przez falauthy Stary wyjadacz (11,550 p.)
To nie o to chodzi. :)

Podobne pytania

0 głosów
1 odpowiedź 134 wizyt
0 głosów
0 odpowiedzi 202 wizyt
pytanie zadane 5 października 2020 w C i C++ przez user4132 Nowicjusz (170 p.)

93,107 zapytań

142,082 odpowiedzi

321,605 komentarzy

62,447 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...