Linggo, Nobyembre ika-21, 2010
iPhone:% (porsiyento) sa NSString
Paano gumawa ng isang porsyento-sign in sa isang NSString? Ang pagpapakilala mismo% ay magiging sanhi ng ang NSString sinusubukang i-parse, ngunit maghintay para sa isang sign na "pagkatapos ng" kung saan ay magpapahintulot sa kanya upang tukuyin ang uri. Dahil wala ay natagpuan, hindi ito ay magpapakita ng anumang mga pag-sign sa sa site. Espesyal na inihanda para sa gawain na ito, samakatuwid, ang isang%%, na solves ang problema.
Kaugnay na mga entry
Maaari mong sundin ang anumang sagot na ang entry na ito sa pamamagitan ng RSS 2.0 feed . Maaari mo ring isulat ang iyong sariling mga puna , o mag-link sa post na ito sa iyong pahina.



















































Ito ay isang printf format
maraming mga novices sa Agosto ulo sa paglipas ng bahagdan na ito dahil hindi mapuna ang pagpasa sa isang libro sa C. porsiyento sign -% - ay isang control character sa format ng string. porsiyento para sa bawat karakter na natagpuan sa ang string ng format ay kinuha mula sa stack na kung saan ay ang haba ng isang integer argument. para sa bawat porsiyento sign na natagpuan doon ay isang puwang na tinapos string na tumutukoy kung paano ang interpretasyon ng argumento natanggap.
Ang double string sa format ng isang porsyento ("%%") ay convert sa isang solong pag-sign ng porsiyento sa printf function na. Katulad nito, ang mga sequences C (convert sa antas ng tagatala), backslash (\) ay isang control na nagbibigay-daan sa iyo na magpasok ng anumang mga character na ASCII set. Pinapayagan kang magpasok ng isang backslash sequence ay ang parehong - "\ \".
Ang printf format Mukhang ito:% [parameter] [flag] [lapad] [katumpakan.] [Haba] uri
Ang pinaka-mahalaga at ang tanging sapilitan parameter ay 'uri'
d, at I-print isang int bilang isang sign na numero ng decimal. '% D' at '% i' ay magkasingkahulugan para sa output, ngunit ibang Kapag ginamit sa scanf () para sa input.
I-print sa decimal na hindi linagdaan int.
f, F I-print ang isang double sa normal (nakapirming-point) pagtatanda. 'F' at 'F' lamang naiiba sa kung paano ang mga string para sa isang walang hanggan bilang o Nan ay nakalimbag ('inf', 'walang katapusan' at 'Nan' para sa 'f', 'INF', 'walang katapusan' at 'Nan' para sa 'F').
e, E Mag-print ng isang double na halaga sa karaniwang anyo ([-] d.ddd e [+ / -] ddd). Isang E conversion ay gumagamit na ang titik na E (sa halip na e) sa Ipakilala ang exponent. Exponent ang palaging naglalaman ng hindi bababa sa dalawang digit, kung ang halaga ay zero, ang exponent ang ay 00 Sa Windows, ang exponent sa ay naglalaman ng tatlong digit sa pamamagitan ng default, hal 1.5e002, ngunit ito ay binago sa pamamagitan ng _set_output_format Microsoft-specific na function na.
g, G Magpa-print ng isang double sa Alinman sa normal o pagpaparami pagtatanda, alinman ang mas Nararapat para sa nito magnitude. 'G' ay gumagamit ng mas mababang-case na mga titik, 'G' ay gumagamit ng mga itaas na-case na mga titik. Ang uri na ito ay bahagyang naiiba mula sa nakapirming-point notasyon sa hamak Iyon Zeroes sa kanan ng decimal point ay hindi kasama. Gayundin, ang decimal point ay hindi kasama sa mga buong numero.
x, X I-print ang isang unsigned int bilang isang hexadecimal numero. 'X' ay gumagamit ng mga mas mababang-case na mga titik at ang 'X' ay gumagamit ng itaas na-case.
para sa I-print ang isang unsigned int sa octal.
I-print ng isang character string.
c I-print ng isang pansamantalang trabaho (karakter).
p I-print ng isang walang bisa * (pointer sa bisa) sa isang Pagpapatupad-natukoy na format.
n wala sa print, ngunit isulat ang bilang ng mga character na matagumpay na nakasulat sa ngayon sa isang integer na parameter pointer.
% I-print ng isang literal na '%' na character (uri ito ba ang hindi tumatanggap ng anumang flag, lapad, katumpakan o haba).
Kailangan mong magkaroon ng isang maliit na mapagbantay printf'em gamit dahil ito ay isang mekanismo na kung saan ang baguhan isang shoot sa paanan.
niesanityzowanych transfer data mula sa isang gumagamit ay nagbukas ng isang string ng kahinaan ng format sa pag-atake.
Ang isang karaniwang pagkakamali ay upang:
printf (ciag_od_uzytkownika);
Ang tamang syntax ay:
printf ("% s", ciag_od_uzytkownika);
o
Ang naglalagay na (ciag_od_uzytkownika);