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

Odczytywanie znaków(słów) z pliku tekstowego.

HackNation - ogólnopolski hackathon
0 głosów
716 wizyt
pytanie zadane 1 grudnia 2016 w C i C++ przez Piotr Królak Obywatel (1,950 p.)
edycja 1 grudnia 2016 przez Piotr Królak

Cześć.

W mam plik tekstowy, w każdej lini są dwa wyrazy oddzielone od siebie spacją a na końcu jest, tak myślę, znak nowej linii ('/n'???), muszę wpisać jedno słowo do tablicy A, natomiast drugi znak do tablicy B...Niestety obecnie program nie kompiluje się, czy mogli byście rzucić okiem i zobaczyć gdzie popełniłem błąd, poniżej umieszczę część przykłądowego pliku tekstowego a niżej kod. 

Część odczytywanego pliku:

17.085750 9.0
17.095250 3.0
17.104750 5.0

Poniżej kod:


//*****************************************************************************************************************ODDZIELANIE X od Y!!!
			 //
			 // tablica o dlugosci = ilosci lini 
			 array<String^>^ Xwsp = gcnew array<String^>( txt->Lines->Length );
              Xwsp = txt->Lines;

			  //tab o dlugosci = ilosci lini
			  array<String^>^ Ywsp = gcnew array<String^>( txt->Lines->Length );
			  Ywsp = txt->Lines;
			  
			  double ile_lini = txt->Lines->Length; // zmienna ile_lini = ilości lini w pliku txt
			  			 
			  for(int i=0; i< ile_lini; i++)
			 {
				 int n=0;

				 String^ str = txt->Lines[i];
				 String^ wspX; // = '';
				 String^ wspY; // = '';
				 char znak;
                     
				 while (znak == '\n') // znak!=' '
				 {
					 znak = str[n];
					 if(znak == ' ') spacja = true;
					 

					 if(!spacja)
					 {
						 wspX = wspX[n] + znak;
						 n++;
					 }
					 else
					 {
						 wspY = wspY[n] + znak;
						 n++;
					 }
                     

					 n=0;
                 }
				 // wpisanie slowa 1 do tab X i 2 do tab Y
				 Xwsp[i] = wspX;
				 Ywsp[i] = wspY;

				 spacja = false;		// zmienna globalna typu bool, sprawdzajaca czy wykroyto spacje	 
			 }

 

Z góry dzięki za pomoc! 

komentarz 1 grudnia 2016 przez Predo Bywalec (2,260 p.)
A jakie błędy się pojawiają podczas kompilacji? W którym miejscu?

To raczej jest tylko jakiś fragment kodu.

1 odpowiedź

0 głosów
odpowiedź 1 grudnia 2016 przez niezalogowany

Nie kompiluje się, bo: nie istnieje coś takiego jak: String^, istnieje std::string.
Widzę też kolejny błąd, ale legalny dla kompilatora: 

while (znak = '\n') // powinno być ==

Oraz nie wiem czy:

Xwsp[i] = wspX;
Ywsp[i] = wspY;

nie będą jako 'undefined' bo nie widzę ich definicji

komentarz 1 grudnia 2016 przez Piotr Królak Obywatel (1,950 p.)

Podany kod nie jest całym kodem a tylko wycinkiem odpowiedzialnym za rozdzielanie znaków na słowa. 

 

W C++/CLI String^ jest definicją typu '^' <- uchwyt.

Niżej definicja tablic: 

			 // tablica o dlugosci = ilosci lini 
			 array<String^>^ Xwsp = gcnew array<String^>( txt->Lines->Length );
              Xwsp = txt->Lines;

			  //tab o dlugosci = ilosci lini
			  array<String^>^ Ywsp = gcnew array<String^>( txt->Lines->Length );
			  Ywsp = txt->Lines;
			  

 

Podobne pytania

0 głosów
1 odpowiedź 278 wizyt
pytanie zadane 27 grudnia 2016 w C i C++ przez PatrykPlusPlus Początkujący (320 p.)
0 głosów
2 odpowiedzi 2,307 wizyt
pytanie zadane 16 kwietnia 2019 w C# przez WojMen Początkujący (330 p.)
0 głosów
2 odpowiedzi 216 wizyt
pytanie zadane 28 marca 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)

93,626 zapytań

142,551 odpowiedzi

323,047 komentarzy

63,130 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1388p. - Maurycy W
  6. 1371p. - raydeal
  7. 1369p. - Adrian Wieprzkowicz
  8. 1360p. - Tomasz Bielak
  9. 1335p. - robwarsz
  10. 1296p. - Michal Drewniak
  11. 1269p. - Rafał Trójniak
  12. 1141p. - ssynowiec
  13. 1116p. - rucin93
  14. 1102p. - Dominik Łempicki (kapitan)
  15. 1100p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...