Tags:
c++
Jeg har har prøvet forskellige måder at læse fra stdin. Denne måde som står nedenunder opfører sig lidt underligt. Den springer simpelthen den sidste getchar() over. Jeg har fået at vide at man skal flushe en buffer med fflush. Men ved ikke helt hvordan. Jeg har prøvet at indsætte fflush(stdin) efter den første getchar men det hjalp ikke. Hvordan skal denne fflush bruges i dette tifælde?
int cPrioritet;
int intTilstand;
char cCpr[10];
int main()
{
gets(cCpr);
cPrioritet = getchar();
intTilstand = getchar();
printf("%s %c %c ", cCpr, cPrioritet , intTilstand);
return 0;
}
mvh X
2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Prøv at indsætter
flushall();
mellem getchar()
Det skulle kunne gøre det.
Mvh.
Thomas Vanting
0
Man kan ikke fflush'e input streams.
Løsningen er at bruge fgets til alle sine læsninger (eller std::getline med std::string i C++).