HIZLARIA 1: Ikus dezagun begirada bat CS50 liburutegian, zehazki bere GetInt funtzioa. Hemen benetako iturburua dugu GetInt kodea. Eta konturatu ez dela luzeegia, eta gehienak, berriz, begizta bat osatzen - hartan begizta infinitu bat - hori bakarrik balioa itzultzen behin benetan dugu ahaztuak zer dugu espero. Dezagun ibiltzeko. Nabarituko hemen lehenik eta behin, begizta hasten da berriz. Nabarituko hurrengo kode lerro bat dugula benetan deiak GetString, eta bueltan balioa gordetzen batean aldakorreko, lerro deritzo, mota katea. Orduan egiten dugu behatu txeke bat apur bat. Line == null bada, orduan bitxia dugu itzultzeko INT_MAX. Orain bihurtzen da INT_MAX dela bat konstante berezia nonbait deklaratu posible handiena zehazten int batean zaudela irudikatzeko daiteke honen antzeko programa. Orain dugu arbitrarioki itzultzeko erabaki INT_MAX Sentinel balio gisa ordenatzen, bat jo dugu horretan gordeak Errore bat gertatu da zentzua. Beraz prezioa ordaindu dugu, noski, ez da GetInt ahal itxuraz ez benetan itzultzeko kopuru bat bezain handi INT_MAX, nahi bada ere, delako, itzulitako balioan egin beharko lukete benetan da interpretatu deitzailearen arabera - duenarentzat da GetInt erabiliz - Nolabaiteko errore bat. Ondoren, konturatu deklaratu dut int n eta char c a. Hurrengo kode-lerro honetan, bat deitzen dut funtzioa sscanf deitu, pasatzen lau argumentu. line, horrek katea da erabiltzailearen idatzi batean, "% i% c", zein formatu bat da katea duten erabiltzaileen dezake zain nago mota, helbidea sartu eta jarraian n, eta c-helbidea. Orain sscanf bizitzako helburua da, hain zuzen kate bat bilatzen eskaneatu formatu jakin programatzailea ditu bigarren argumentua duten bezala zehaztu. Kasu honetan,% i da han,% c da gisa. En int topaketek hala bada sscanf Erabiltzaile sarrera, int duten bilduko dituen izeneko n aldagaia, barrutik delako hirugarrenean bezala prestatu ditugu argumentua n helbide sscanf izateko. Horrek esan nahi du ezin dela sscanf hain zuzen ere, joan han, eta bertan eguneratu balioa. Orain, kasu horretan, erabiltzaile-mota zerbait gehiago digituak bat edo gehiago baino - beste era batera esanda, nolabaiteko char bat - duten bigarren c aldakorra, zeinen helbide bere laugarren gisa pasatu sscanf sartu dugu argudioa ere biztanle dira. Orain bat egiaztatzeko hankaz Erabiltzaileak pertsonaia osagarria da bada ez du berak lankidetzan aritzea, eta int bat baino gehiagotan mota, berau atzemateko gai honetan izan dugu eran, zeren kasu horretan, sscanf 2 itzuli da, signifying duten leku-markak izan bai bete ziren balioekin. Baina sscanf ordez espero ari gara 1 ematen du, eta horrek erabiltzaileari bakarrik esan nahi int bat zehaztu. Zer egiten dugu bada sscanf hain zuzen ere, 1 ematen? Beno, berehala askatzea dela lerroan duen erabiltzaileak idatzitako, eta egin dugu berehala itzuliko n, beharrik int ahaztuak. Bestela, sscanf ez badu itzultzeko 1, eta erabiltzaileari beraz ez kooperatu, oraindik ere, linea libre dugu, baina ditugun orain erabiltzaileari saiatu berriro galdetuko. Eta barruan, oraindik gaude delako begizta infinitua bestela, prozesua berriro ere berriro hasiko da, eta, agian, eta agian berriro, erabiltzaileak benetan arte int bat eskaintzen digu.