Czytam ANSI C Briana W. Kernighana oraz Dennisa M.Ritchie'go.
Zacząłem czytać o funkcjach sczytującej znak wejścia i wymyśliłem sobie zadanie ,którego nie potrafie zrobić.
Programuje w Visual Editorze.
Stworzyłem plik
dane.4
w którym umieściłem 3 napisy w oddzielnych liniach.Pomiędzy niektórymi wyrazami było po kilkanaście spacji. Chciałem aby program sczytał dane z tego pliku , przy napotkaniu spacji szedł dalej ,aż napotka znak. Potem wstawił spacje i znowu wstawiał znaki. W wyniku czego powstałby plik z napisami oddzielony jedną spacją. Nie wychodziło mi z operacją na tym samym to chciałem żeby znaki wsadzało do tablicy charów, ale juz tutaj mam probłem bo gdy próbuje zobaczyc printfem co jest w tej tablicy, wyskakują mi jakieś kwadraciki.Oto mój kod:
Kod: Zaznacz cały
#include<stdio.h>
int main(int argc, char *argv[])
{
FILE *in = argc > 1 && argc < 3 ? fopen(argv[1], "r") : NULL;
int a,b,c;
c = 0;
char tab[10000];
tab[10000] = getc(in);
if(argv[1] == NULL){
fprintf( stderr, " Nie moge czytać tego pliku");
}
while( tab[c] != EOF){
tab[c] = getc(in); // zakładam że tutaj jest coś zle, chociaż nie wiem co :/
c++;
}
for(b = 0; b < ; b++)
{
printf("%c", tab[b]); // tutaj wypisuje mi kwadraty
}
return 0;
}
dane.4
i jest w nim coś takiego:
Kod: Zaznacz cały
Mlotek tablica
Kartofel laptop
Jarosław antylopa