Teknologian jakaminen

C-kieli - printf, scanf, muut syöttö- ja tulostustoiminnot

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

printf-toiminto

1. Printf-funktion yleinen muoto:


Printf-funktion yleinen muoto on printf (muodon ohjaus, tulosluettelo)
Esimerkiksi:

printf("%d,%cn",i,c);

(1) "muodon hallinta"

Se on kaksoisheittomerkkien sisällä oleva merkkijono, jota kutsutaan "muunnosohjausmerkkijonoksi" tai lyhennettynä "muotomerkkijonoksi". Se sisältää kaksi tietoa:
① Muotoile lausunto. Muotoilmoitus koostuu "%"- ja muotomerkeistä, kuten %d, %f jne. Sen tehtävänä on muuntaa lähtötiedot määritettyyn muotoon ja tulostaa se sitten. Muotoilmoitukset alkavat aina "%"-merkillä.

Niistä: d edustaa desimaalilukua, c on yksi merkki, s edustaa useita merkkejä, f edustaa desimaalimuotoa, x edustaa tulostusta heksadesimaalimuodossa ja p on tulostusmuistin osoite, joka myös tulostetaan heksadesimaalimuodossa käyttää muuttuvan osoitteen operaatiosymbolia &.
② Tavallisia merkkejä. Tavalliset merkit ovat merkkejä, jotka on tulostettava muuttumattomina tulostuksen aikana. Esimerkiksi yllä olevan printf-funktion kaksoispilkkujen pilkut, välilyönnit ja rivinvaihdot voivat sisältää myös muita merkkejä.


(2) "Tulostaulukon sarake"

Ohjelman on tulostettava joitakin tietoja, jotka voivat olla vakioita, muuttujia tai lausekkeita.

Huomautus:
(1) Pakotettu muunnos: Muunna kokonaisluvut desimaaliluvuiksi
  1. int data = 10;
  2. int chushu = 3;
  3. float result;
  4. result = (float)data/chushu;
(2) Määritä tietojen leveys ja desimaalien lukumäärä, käytä %m.nf
"%7.2"-muotoa on käytetty määrittämään, että lähtötiedot vievät 7 saraketta, mukaan lukien 2 desimaalin tarkkuutta. Viimeinen numero pyöristetään, eli likimääräinen arvo otetaan ylös- tai alaspäin. Jos Tathagata määrittää desimaaliosan arvoksi 0, desimaalilukua ei tulosteta, mutta desimaalipilkkua ei myöskään tulosteta. Älä siis määritä desimaalien määrää helposti nollaksi.
(3) Lähtötiedot on kohdistettu vasemmalle käyttäen %m.nf
Negatiivisen merkin lisäämisellä m:n ja n:n eteen on periaatteessa sama vaikutus kuin %m.nf-lomakkeella. Jos datan pituus ei kuitenkaan ylitä m, tiedot siirretään vasemmalle ja välilyönnit lisätään oikeaan päähän.

scanf-toiminto

1. Scanf-toiminnon yleinen muoto


scanf (muodon ohjaus, osoitetaulukon sarake)

"Format Control" tarkoittaa samaa kuin printf-funktio. "Osoitetaulukon sarake" on taulukon sarake, joka koostuu useista osoitteista, jotka voivat olla muuttujan osoite tai merkkijonon ensimmäinen osoite.


2.Alusta ääni scanf-toiminnossa


Samoin kuin printf-funktion muotomääritys, se alkaa %:lla ja päättyy muotomerkkiin, ja keskelle voidaan lisätä lisämerkkejä.
Scanf-funktio voidaan kirjoittaa uudelleen seuraavaan muotoon

scanf("a=%f,b=%f,c=%f",&a,&b,&c);


Muotoilmoituksen %f lisäksi muotomerkkijonossa on myös tavallisia merkkejä (mukaan lukien "a=", "b=" ja ",").

Huomautus:

(1) Osoitemerkki &

Scanf-funktion "muotoohjauksen" jälkeen tulee olla muuttujan osoite, ei muuttujan nimi.Esimerkiksi jos a ja b ovat kokonaislukumuuttujia, jos ne kirjoitetaan muodossa

scaní("%f%f%f",a,b,c);

Ei ole oikein. "a,b,c" tulee vaihtaa muotoon "&a,&b,&c". Monet aloittelijat tekevät tämän virheen.

(2)Syötä sellaisenaan

Jos "muodon ohjausmerkkijonossa" on muita merkkejä muotoilmoituksen lisäksi, tulee tietoja syötettäessä syöttää vastaaviin paikkoihin samat merkit kuin nämä merkit.Jos on

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

Tietoja syötettäessä on samat merkit syötettävä vastaaviin paikkoihin.eli syöttö
a=1,b=3,c=2 (kiinnitä huomiota syötettävään sisältöön)

Älä siis lisää välilyöntejä (jos käytät rivinvaihtoa välilyöntien syöttämiseen, se on OK) tai pilkkuja ja muita symboleja scanf:ssä, vaan kirjoita tarvittavat syöttötiedot suoraan:

scanf("%d%d%f",&data,&data1,&data2);
(3) Merkkien syöttö

Kun määritetään syöttömerkkejä muodossa "%c", välilyönnit ja "poistomerkkien" merkit syötetään kelvollisiksi merkeiksi, esimerkiksi:
 

scanf("%c%c%c,&c1,&c2,&c3);

Kun suoritat tätä toimintoa, sinun tulee kirjoittaa 3 peräkkäistä merkkiä ilman välilyöntejä.
Olisi väärin lisätä välilyönti kahden merkin väliin.

Välilyönnit ja rivinvaihdot ovat myös merkkejä Et voi käyttää välilyöntejä tai rivinvaihtoja syötettäessä.

(4) Sekoitettu syöttö

Numeerisia tietoja syötettäessä, jos syötät välilyöntiä, rivinvaihtoa, sarkainnäppäintä tai kohtaat laittomia merkkejä (merkkejä, jotka eivät kuulu numeroarvoihin), tietojen katsotaan päättyneen. Esimerkiksi:
 

scanf("%d%c%f,&a,&b,&c);

Oikea syöttö on: 1234h7.6

Ensimmäiset tiedot vastaavat muotoa %d. 1234:n syöttämisen jälkeen järjestelmä luulee, että arvon 1234 jälkeen ei ole numeroita. Ensimmäisen tiedon pitäisi päättyä tähän, joten muuttujaan lähetetään 1234. a. Lähetä seuraava merkki 'h' merkkimuuttujaan b Koska %c vaatii vain yhden merkin syöttämisen, järjestelmä määrittää, että merkin syöttö on päättynyt, joten välilyöntiä ei tarvitse lisätä merkin jälkeen. h'. Merkin 'h' jälkeinen arvo tulee lähettää muuttujaan c. Jos 1230.26 on virheellisesti kirjoitettu 123o.26:ksi huolimattomuudesta johtuen, koska o-kirjain tulee 123:n jälkeen, katsotaan, että numeeriset tiedot päättyvät tähän, eikä seuraavia merkkejä lueta.

Joten kun syötämme erityyppisiä tietoja, meidän tulisi tehdä vastaavat scanf-funktiot tyypin mukaan. Useille tyypeille on olemassa useita scanf-funktioita.

(5) Useita skannaustoimintoja

Kun ohjelma sisältää kaksi tai useampia scanf-funktioita, jälkimmäinen scanf-toiminto pitää rivinvaihtomerkkiä edellisen scanf-funktion syöttämisen jälkeen omana syötteensä, jolloin jälkimmäinen scanf-toiminto ei pysty saamaan syötettä normaalisti, joten sitä on käytettävä. Lisää scanf-funktioiden väliin getchar() ylimääräisen rivinvaihdon ottamiseksi.

Muut tulo- ja lähtötoiminnot:

laittaa: ero printf:stä
(1) Lisää rivinvaihdot automaattisesti
(2).printf tukee useita tulostusmalleja, ja puts on tulostemerkkijono.

getchar, putchar

Syöttö- ja lähtöharjoitukset:

1. Syötä isot kirjaimet ja tulosta pienet kirjaimet

Tässä käytetään ASCII-koodien tuntemusta. Isoja kirjaimia vastaava ASCII-koodi + 32 on pieniä kirjaimia vastaava ASCII-koodi.

Joten koodiesimerkki on

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a;
  5. char b;
  6. printf("请输入一个大写字母:");
  7. scanf("%c",&a);
  8. b = a+32;
  9. printf("其对应的小写字母为:%c",b);
  10. return 0;
  11. }