Podwójne zczytywanie

0

Witam,
mam program do napisania, w którym najpierw zczytywane są liczby typu całkowitego, a następnie jedna linijka tekstu. Mój kod tak się prezentuje:

	int skok;

	scanf("%d", &skok);
	
	char tresc[100];
	int znak = 0;
	int c;

	//	pobieramy dane od użytkownika
	while((c=getchar())!=EOF){
		if(c=='\n'){
			//	naciścnięto [Enter]
			//	więc kończymy zczytywać
			tresc[znak] = '\0';
			break;			
		}else{
			//	wpisywany jest normalny ciąg znaków
			tresc[znak++] = c;
		}
	}

Niestety po wpisaniu jakiejś liczby program od razu się wyłącza.
Mógłby ktoś wyjaśnić dlaczego?
Pozdrawiam

0

bo enter zostaje w buforze i jest pobrany przez getchar()

0
 #include <cstdio>
int main()
{
        int skok;
 
        scanf("%d", &skok);

	 while(char znak=getchar() != '\n' && (znak!=EOF));

        char tresc[100];
        int znak = 0;
        int c;
 
        //        pobieramy dane od użytkownika
        while( (c=getchar()) != EOF ){
                if(c=='\n'){
                        //        naciścnięto [Enter]
                        //        więc kończymy zczytywać
                        tresc[znak] = '\0';
                        break;                        
                }else{
                        //        wpisywany jest normalny ciąg znaków
                        tresc[znak] = c;

znak++;
                }
        }
printf("%s\n", &tresc[0]);
 }

Wpisz w google zabezpieczenie liczby site:4programmers.net jest jakiś art o tym

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