Obcinanie do 10 znakow wyrazow i umieszczanie ich w buforze. Język C. Jak to zrobić ?
Ostatnio zmodyfikowano 2015-11-20 14:00
FocuSsmok Temat założony przez niniejszego użytkownika |
» 2015-11-20 11:26:41 Nie wiem czy to jest dobrze. Zrobiłem buforowanie za pomocą funkcji setvbuf. Tylko teraz jak zwiększać ten bufor kiedy jest za mały ? |
|
carlosmay |
» 2015-11-20 12:43:47 Ostatni argument jest odpowiedzialny za wielkość bufora. setvbuf |
|
FocuSsmok Temat założony przez niniejszego użytkownika |
» 2015-11-20 14:00:11 Wiem że ostatni argument odpowiada za rozmiar. Tylko nie wiem za bardzo jak go powiększać jeśli jest zbyt mały. Próbowałem zrobić to tak:
while(strlen(gets(wyrazy))>0) { setvbuf(plik,wyrazy,_IOFBF,size); if(fputs(wyrazy,plik)||size>1024) { printf("Zwiekszenie bufora"); size=size*2; } wyrazy[10]='\0'; fputs("\n",plik); for (i=0;i<(sizeof wyrazy/sizeof *wyrazy);i++) { printf("Element numer %d=%d\n",i,wyrazy[1]); } printf("Podaj kolejny lub zakoncz ENTER-em\n"); fflush(NULL); }
Tylko jak za pierwszym razem wpiszę zbyt długi ciąg znaków to mi wyskakuje błąd lub jak wpisuje na początku zgodne z rozmiarem, a potem wpiszę większy to wyskakuje zwiekszanie bufora. Tylko potem jak znowu wpiszę pierwszy za długi to też wywala błąd. Jakieś pomysły ? |
|
1 « 2 » |