[C] Usuwanie nadmiernych spacji

Libertarian
Użytkownik
Użytkownik
Posty: 49
Rejestracja: 14 lip 2013, o 12:40
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 7 razy
Pomógł: 1 raz

[C] Usuwanie nadmiernych spacji

Post autor: Libertarian »

Czesc, mam do napisania taki program, ma on usuwac nadmiene spacje ktore sa w teksie w pliku i wyswietlic efekt na ekran, jednak program sie zacina. Z gory dziekuje za pomoc

Kod: Zaznacz cały

#include <stdio.h>


int main()
{
FILE *plik1;

char znak1, znak2;

plik1=fopen("slowka.txt", "r");
if((plik1=fopen("slowka.txt","r"))==NULL)
{
     printf ("Nie mogàotworzyàpliku %s do odczytu!
");
     return(-1);
     }

znak1=getc(plik1);
while((znak2=getc(plik1))!=EOF)
{
if(isspace(znak1) && isspace(znak2))
{
znak1=znak2;
}
else
 printf("%s %s", znak1, znak2);
 znak1=znak2;

}
fclose(plik1);


    return 0;
}
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10225
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2362 razy

[C] Usuwanie nadmiernych spacji

Post autor: Dasio11 »

1. Dwa razy otwierasz plik.
2. Modyfikator służący do wypisania chara to %c, a nie %s. Taka pomyłka prawie zawsze spowoduje naruszenie ochrony pamięci i awaryjne wyjście z programu.
3. Większość znaków wypisze się dwa razy.
ODPOWIEDZ