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

C++ Program nie odczytuje linijek z pliku

Object Storage Arubacloud
0 głosów
1,413 wizyt
pytanie zadane 14 kwietnia 2017 w C i C++ przez robert1506 Początkujący (280 p.)
edycja 14 kwietnia 2017 przez robert1506
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

string imie, nazwisko;
int numer;

int main()
{
	fstream plik;

	plik.open("wizytówka.txt", ios::in);

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

	string linia;
	int nr_linii = 1;
	while (getline(plik,linia))
	{
		switch (nr_linii)
		{
			case1: imie = linia; break;
			case2: nazwisko = linia; break;
			case3: numer = atoi(linia.c_str()); break;	
		}
		nr_linii++;
	}

	plik.close();

	system("PAUSE");
	return 0;
}

Mam problem. Nie jestem w stanie zlokalizować błędu w powyższym kodzie. Podczas kompilacji nie odczytuje mi wartości z pliku tekstowego. Zaznaczam, że w pliku mam tylko 3 linijki tekstu.

4 odpowiedzi

+1 głos
odpowiedź 14 kwietnia 2017 przez Evelek Nałogowiec (28,960 p.)
Dodaj spacje po case.
komentarz 14 kwietnia 2017 przez robert1506 Początkujący (280 p.)
Teraz log wygląda tak:

  Źródło.cpp
  Wizytówka - odczyt.vcxproj -> E:\VisualStudio\Wizytówka - odczyt\Debug\Wizytówka - odczyt.exe
  Wizytówka - odczyt.vcxproj -> E:\VisualStudio\Wizytówka - odczyt\Debug\Wizytówka - odczyt.pdb (Partial PDB)
 

Linijek tekstu jak nie było tak nie ma :(
komentarz 14 kwietnia 2017 przez Knayder Nałogowiec (37,640 p.)
Faktycznie, visual sam mi je dostawił :O
komentarz 14 kwietnia 2017 przez Evelek Nałogowiec (28,960 p.)

Linijek tekstu jak nie było tak nie ma :(

A napisałeś cout? Nie.

0 głosów
odpowiedź 14 kwietnia 2017 przez Knayder Nałogowiec (37,640 p.)
Błąd nie jest w kodzie. Skopiowałem twój kod i działa pomyślnie. Musiałeś coś sknocić w samym pliku wizytowka.txt
Sprawdź czy plik na pewno nazywa się tak jak powinien. Czy znajduje się w tym samym miejscu co main.cpp itp.
komentarz 14 kwietnia 2017 przez robert1506 Początkujący (280 p.)
Plik jest tam gdzie plik źródłowy, nazwa się zgadza. Nie wiem co jeszcze może być nie tak
0 głosów
odpowiedź 14 kwietnia 2017 przez robert1506 Początkujący (280 p.)
Wstawiam loga:

  Źródło.cpp
e:\visualstudio\wizytówka - odczyt\wizytówka - odczyt\źródło.cpp(31): warning C4060: instrukcja switch zawiera etykiety "case" lub "default"
e:\visualstudio\wizytówka - odczyt\wizytówka - odczyt\źródło.cpp(28): warning C4102: "case1": etykieta, do której nie istnieje odwołanie
e:\visualstudio\wizytówka - odczyt\wizytówka - odczyt\źródło.cpp(29): warning C4102: "case2": etykieta, do której nie istnieje odwołanie
e:\visualstudio\wizytówka - odczyt\wizytówka - odczyt\źródło.cpp(30): warning C4102: "case3": etykieta, do której nie istnieje odwołanie
  Wizytówka - odczyt.vcxproj -> E:\VisualStudio\Wizytówka - odczyt\Debug\Wizytówka - odczyt.exe
  Wizytówka - odczyt.vcxproj -> E:\VisualStudio\Wizytówka - odczyt\Debug\Wizytówka - odczyt.pdb (Partial PDB)
0 głosów
odpowiedź 14 kwietnia 2017 przez robert1506 Początkujący (280 p.)

Dziękuje za próby pomocy. Udało mi się rozwiązać problem. Jak ktoś w przyszłości miałby podobny problem to wystarczy po komendzie zamykającej plik wstawić:

	cout << "imie: " << imie << endl;
	cout << "nazwisko: " << nazwisko << endl;
	cout << "telefon: " << numer << endl;

 

Podobne pytania

0 głosów
1 odpowiedź 448 wizyt
pytanie zadane 29 grudnia 2015 w C i C++ przez martix3 Użytkownik (690 p.)
0 głosów
1 odpowiedź 557 wizyt
0 głosów
1 odpowiedź 2,406 wizyt
pytanie zadane 25 lipca 2018 w C i C++ przez Dominik94 Nowicjusz (120 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 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!

...