Diskuze: ignorovanie scanf ?
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
scanf ti totiž vezme a naparsuje enter, který jsi zmáčkl za písmenem. Dělá se to tak, že před %c, napíšeš mezeru, která ten enter "vyžere".
scanf(" %c")
hmm, skusal som fflush(stdin) pred to presne koli tomu ale teraz mi doslo ze je to blbost dakujem
tak este jedna drobnost , pri prvom vstupe vypise len wtf 1 , pri druhom vstupe mi vypise scanf 0 a potom wtf 2 , ocividne to tam zaspalo a caka na nieco ale teraz ma uz fakt nic nenapada (vstupy su a 1, a 2, a 3)
while (true) {
char s;
if (scanf(" %c", &s) == -1)
break;
if (s == 'a') {
printf("som v A %i. krat, typ = %i\n",wtf++,typ);
char * a = (char*)malloc(255*sizeof(char));
if (scanf("%s", a) == -1)
break;
if (typ == 10)
analyzeNadd(queue,a);
else {
if (typ == 0) {
char k;
getchar();
scanf("%c",&k);
addChar(queue,k);
} else if (typ == 1) {
printf("wtf 1\n");
int k;
printf("scanf %i\n",scanf("%i", &k)); // IGNORE
printf("wtf 2\n");
addInt(queue,k);
} else {
float k;
scanf("%f", &k);
addFloat(queue,k);
}
....
Ak to teda načítavaš všetko v cykle tak sa najprv načíta 'a' potom 1 tým sa dostaneš do tej vetvy if (typ == 1) vypíše sa wtf1 a čaká na ďalší scanf("%i", &k)). Potom ak ideš zadať 'a' 2 tak pokračuje v tej vetve vypísaním wtf2
Zobrazeno 6 zpráv z 6.