Program nie wczytuje spacji z pliku

0

Witam!
Chcę napisać program, który wczytuje dowolny tekst z pliku txt i wypisuje go na ekran, mam problem, ponieważ program który napisałem nie wczytuje spacji z pliku (a na pewno ich nie wyświetla).
oto fragment kodu odpowiedzialny za wczytanie i wypisanie tekstu

 ifstream plik(a.txt);
 
    char tablica[100];
    for (int i=0; i<100; i++) {
        plik >> tablica[i];
    }
    for (int i=0; tablica[i]!=NULL; i++) {
        cout << tablica[i];
        if(tablica[i]=='.') 
        {
        licznik++;
        cout<<endl;
        }
       }  
    plik.close(); 
0
#include <iostream>
#include <fstream>
#include <string>

int main()
{
	std::fstream p ("plik.txt");
	std::string line;
	
	while(!p.eof())
	{
		getline(p, line);
		std::cout<<line;
	}
	std::cin.get();
}

Znacznie łatwiej pobrać całą linię z pliku za pomocą getline, która w przeciwieństwie do operatora>> nie pomija białych znaków.

0

Operator >> ignoruje białe znaki i wczytuje tylko do napotkania takowego. Czyli wczytujesz sobie z pliku po jednym słowie. Albo przy wypisywaniu dodawaj spacje, albo czytaj getline() po całej linii.

0

Chciałem zrobić to na tablicy znaków char, bo nie mam doświadczenia jeszcze w operacjach na stringach, ale widocznie tak będzie łatwiej. Tylko teraz muszę policzyć kropki w tym ciągu, żeby jeszcze liczbę zdań wypisać. Jakiej funkcji do tego najlepiej użyć?

0

:

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
   string tekst="fdsf.erewr.ewrer";//przykładowy tekst
   
   int ilosc=0;
   
   
   for(int i=0;i<tekst.length();i++)
   {
    if(tekst[i]=='.')
     ilosc++;        
   }
   
   cout<<ilosc<<endl;

       
    system("PAUSE");
    return EXIT_SUCCESS;
} 

Za pomocą getline też możesz pobrać tekst do tablicy char

Google nie gryzą!

//EDIT Azrael_Valedhel masz rację, ale to co napisałem jest trochę na logikę. Zawsze można zrobić tak jak powiedziałeś:

cout<< count( tekst.begin(), tekst.end(), '.' );  
0

A jeszcze łatwiej użyć std::count() z <algorithm> ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1