- 1 1. getchar颿°ãšã¯äœãïŒ
- 2 2. getchar颿°ã®åºæ¬çãªäœ¿ãæ¹
- 3 3. getcharã®å¿çšäŸ
- 4 4. EOFãšãããã¡åŠç
- 5 5. getchar颿°ãšä»ã®å ¥å颿°ãšã®æ¯èŒ
- 6 6. getcharã䜿ã£ãå®çšäŸ: 察話åããã°ã©ã
- 7 7. getcharã®æ³šæç¹ãšãã¹ããã©ã¯ãã£ã¹
- 8 8. ãŸãšããšæ¬¡ã®ã¹ããã
1. getchar颿°ãšã¯äœãïŒ
getchar
颿°ã¯ãCèšèªã«ãããåºæ¬çãªå
¥ååŠçã®1ã€ã§ãæšæºå
¥åãã1æåãèªã¿èŸŒã¿ãŸãããã®é¢æ°ã¯ããŠãŒã¶ãŒãããŒããŒãããæåãå
¥åããåŸããã®æåã®ASCIIã³ãŒããè¿ããããåçŽãªå
¥ååŠçãè¡ãããå Žåã«äŸ¿å©ã§ããããšãã°ããŠãŒã¶ãŒãå
¥åããæåã1ã€ãã€åŠçããå Žåã«äœ¿çšãããŸãã
getchar颿°ã®ç¹åŸŽ
- æšæºå ¥åãã1æåãååŸïŒããŒããŒãããã®å ¥åã確å®ããããŸã§åŸ æ©ããEnterããŒãæŒãããåŸã«åŠçãéå§ããŸãã
- ASCIIã³ãŒããè¿ãïŒååŸããæåã¯ããã®ãŸãŸã§ã¯ãªãASCIIã³ãŒããšããŠè¿ãããŸããæåãšããŠæ±ãããã«ã¯ããã£ã¹ããå¿ èŠã§ãã
getchar
ã¯ãç¹ã«ã·ã³ãã«ãªãŠãŒã¶ãŒå
¥ååŠçãã察話çãªããã°ã©ã ã«æé©ã§ããä»ã®å
¥å颿°ãšæ¯èŒããŠãæ±ããããç¹ãå€ããããCèšèªã®åŠç¿åæã«ã¯ãã䜿ãããŸãã
䜿çšäŸ
以äžã¯ãgetchar
ã䜿ã£ãã·ã³ãã«ãªå
¥åäŸã§ãã
#include <stdio.h>
int main() {
int c;
printf("æåãå
¥åããŠãã ãã: ");
c = getchar();
printf("å
¥åããæå: %c
", c);
return 0;
}
ãã®ããã°ã©ã ã§ã¯ããŠãŒã¶ãŒãããŒããŒãããå ¥åãã1æåãååŸããããã®æåãç»é¢ã«è¡šç€ºãããŸããå®éã®åºåçµæã¯ãäŸãã°ãAããå ¥åããå Žåãæ¬¡ã®ããã«ãªããŸãã
æåãå
¥åããŠãã ãã: A
å
¥åããæå: A

2. getchar颿°ã®åºæ¬çãªäœ¿ãæ¹
åºæ¬çãªåŒã³åºãæ¹æ³
getchar
颿°ã¯ã以äžã®ããã«åŒã³åºãããŸãã
int getchar(void);
ããã¯ãåŒæ°ãåããã1æåãååŸããŠããã®æåã®ASCIIã³ãŒããè¿ããŸããæ»ãå€ã¯æŽæ°åïŒint
ïŒã§ããšã©ãŒãçºçããå Žåã¯EOF
ïŒEnd Of FileïŒãè¿ããŸãã
åçŽãªæåå ¥åã®äŸ
äžèšã®äœ¿çšäŸã§ã¯ãgetchar
ã䜿ã£ãŠ1æåãååŸãããã®æåãç»é¢ã«è¡šç€ºããŸããããã®ããã«getchar
ã¯ã1æåã ããåŠçããå¿
èŠãããå Žåã«äŸ¿å©ã§ãã
#include <stdio.h>
int main() {
int c;
printf("æåãå
¥åããŠãã ãã: ");
c = getchar();
printf("å
¥åããæå: %c
", c);
return 0;
}
ãã®ã³ãŒãã§ã¯ãå
¥åãããæåãgetchar
颿°ã«ãã£ãŠèªã¿èŸŒãŸããprintf
ã䜿çšããŠè¡šç€ºãããŸãã
3. getcharã®å¿çšäŸ
EOFïŒãã¡ã€ã«ã®çµç«¯ïŒãšgetchar
getchar
颿°ã¯ãåã«æåãååŸããã ãã§ãªããå
¥åã®çµç«¯ã«éãããšãã«EOF
ïŒEnd Of FileïŒãè¿ããŸããããšãã°ããã¡ã€ã«ããã®å
¥åãæšæºå
¥åã§ãCtrl+ZãïŒWindowsã®å ŽåïŒãŸãã¯ãCtrl+DãïŒUnixã®å ŽåïŒãå
¥åããããšã§EOFãæ€ç¥ããããšãå¯èœã§ãã
以äžã®äŸã¯ãEOFãå ¥åããããŸã§æåãèªã¿èŸŒã¿ç¶ããããã°ã©ã ã§ãã
#include <stdio.h>
int main() {
int c;
printf("æåãå
¥åããŠãã ããïŒEOFã§çµäºïŒ: ");
while ((c = getchar()) != EOF) {
putchar(c);
}
return 0;
}
ãã®ã³ãŒãã¯ãgetchar
颿°ãšputchar
颿°ã䜿ã£ãŠãå
¥åãããæåããã®ãŸãŸç»é¢ã«åºåãããã®ã§ããEOFãå
¥åããããŸã§ãæåã®å
¥åãç¶ããããšãã§ããŸãã
è€æ°æåã®å ¥å
getchar
ã䜿ã£ãŠãè€æ°ã®æåãèªã¿èŸŒãããšãå¯èœã§ãã以äžã®ã³ãŒãã§ã¯ãæ¹è¡æåãå
¥åããããŸã§ããã¹ãŠã®æåã1ã€ãã€è¡šç€ºããŸãã
#include <stdio.h>
int main() {
int c;
printf("æååãå
¥åããŠãã ãã: ");
while ((c = getchar()) != '\n') {
printf("å
¥åãããæå: %c\n", c);
}
return 0;
}
ãã®ããã°ã©ã ã¯ãgetchar
ã§1æåãã€ååŸãããããç»é¢ã«è¡šç€ºããŸãã'\n'
ïŒæ¹è¡æåïŒãå
¥åããããŸã§ã«ãŒããç¶ããŸãã

4. EOFãšãããã¡åŠç
EOFã®åœ¹å²
EOFïŒEnd Of FileïŒã¯ããã¡ã€ã«ãæšæºå
¥åã®çµç«¯ãæå³ããŸããgetchar
颿°ã¯ãEOFã«éãããš-1
ãè¿ããããã°ã©ã ããããæ€ç¥ããŠåŠçãçµäºã§ããŸããEOFã¯éåžžããã¡ã€ã«ã®çµããã瀺ãããã«äœ¿ãããŸãããããŒããŒãå
¥åã®å Žåã¯ç¹å¥ãªããŒæäœã§EOFãéä¿¡ã§ããŸãã
ãããã¡ãªã³ã°ãšgetchar
getchar
颿°ã¯ãå
¥åããããã¡ãªã³ã°ãããŠããããããŠãŒã¶ãŒãå
¥åãããã¹ãŠã®æåããããã¡ã«ä¿åãããŸããããšãã°ãgetchar
ãè€æ°ååŒã³åºããšããããã¡ã«ä¿åãããæ¬¡ã®æåãè¿ãããŸãããã®ãããæ¹è¡æåãå
¥åããããŸã§ããã°ã©ã ãæ¬¡ã®åŠçã«é²ãŸãªãããšããããŸãã
ãããã¡å ã®æ¹è¡æåãç¡èŠããããã«ã¯ã以äžã®ãããªåŠçãå ããããšãã§ããŸãã
#include <stdio.h>
int main() {
int c;
printf("æåãå
¥åããŠãã ãã: ");
c = getchar();
while (getchar() != '\n'); // ãããã¡ã«æ®ã£ãæ¹è¡æåãç¡èŠ
printf("å
¥åãããæå: %c\n", c);
return 0;
}
ãã®ã³ãŒãã¯ãå ¥åãããæåã衚瀺ãããåã«ãæ¹è¡æåããããã¡ããèªã¿åãããã®ãé²ãããã®äŸã§ãã
5. getchar颿°ãšä»ã®å ¥å颿°ãšã®æ¯èŒ
getcharãšscanfã®éã
getchar
ãšscanf
ã¯ã©ã¡ããå
¥åãåãåãããã®é¢æ°ã§ããããã®äœ¿ãæ¹ãšé©çšå Žé¢ã«ã¯å€§ããªéãããããŸããscanf
ã¯ãã©ãŒãããæå®åã䜿ã£ãŠãæŽæ°ãæµ®åå°æ°ç¹æ°ãæååãªã©ãããŸããŸãªããŒã¿åãå
¥åã§ããŸããäžæ¹ãgetchar
ã¯æšæºå
¥åãã1æåãååŸããã ãã®ã·ã³ãã«ãªé¢æ°ã§ãã
scanfã䜿ã£ãå ¥åã®äŸïŒ
#include <stdio.h>
int main() {
int num;
printf("æ°å€ãå
¥åããŠãã ãã: ");
scanf("%d", &num);
printf("å
¥åããæ°å€: %d\n", num);
return 0;
}
ãã®ã³ãŒãã§ã¯ãscanf
ã䜿ã£ãп޿°å€ãå
¥åããããã衚瀺ããŠããŸãããã®ããã«ãscanf
ã¯è€æ°ã®ããŒã¿åã«å¯Ÿå¿ããŠãããè€æ°ã®å€ãäžåºŠã«ååŸããããšãã§ããŸãã
getcharãšfgetsã®éã
fgets
ã¯getchar
ãšç°ãªããè€æ°ã®æåïŒæååïŒãäžåºŠã«èªã¿èŸŒãããšãã§ããŸããããã¯ãæšæºå
¥åããæååãèªã¿åãå Žåã«éåžžã«äŸ¿å©ã§ãããŸããfgets
ã¯ãããã¡ã®ãµã€ãºãæå®ã§ãããããscanf
ã®ããã«ãããã¡ãªãŒããŒãããŒã®ãªã¹ã¯ãé¿ããããšãã§ããŸãã
fgetsã䜿ã£ãå ¥åã®äŸïŒ
#include <stdio.h>
int main() {
char str[100];
printf("æååãå
¥åããŠãã ãã: ");
fgets(str, sizeof(str), stdin);
printf("å
¥åãããæåå: %s", str);
return 0;
}
ãã®ã³ãŒãã§ã¯ãfgets
ã䜿ã£ãŠæååãååŸããããã衚瀺ããŠããŸããfgets
ã¯æ¹è¡æåãŸã§ãå«ããŠ1è¡åã®å
¥åãèªã¿åããããè€æ°è¡ã«æž¡ãããŒã¿ãåŠçããå Žåã«ãæå¹ã§ãã
getcharãscanfãfgetsã®äœ¿ãåã
- getcharã¯ã1æåã ãã®å ¥åãåŠçããéã«äœ¿ããŸããããšãã°ãã¡ãã¥ãŒéžæãããŒå ¥åãéäžåŠçããå Žåã«é©ããŠããŸãã
- scanfã¯ãè€æ°ã®åïŒæ°å€ãæååïŒãååŸãããå Žåã«é©ããŠããŸããããšã©ãŒãã§ãã¯ãå¿ èŠã§ãã
- fgetsã¯ãé·ãæååãè€æ°è¡ã«ãããããŒã¿ã®å ¥åãå¿ èŠãªå Žåã«äŸ¿å©ã§ãããŸãããããã¡ãªãŒããŒãããŒãé²ãããã«ãèªã¿åãæåæ°ãå¶éã§ããã®ãå©ç¹ã§ãã

6. getcharã䜿ã£ãå®çšäŸ: 察話åããã°ã©ã
getchar
颿°ã¯ããŠãŒã¶ãŒå
¥åãå©çšãã察話åã®ããã°ã©ã ã§ãã䜿ãããŸããããã§ã¯ãç¹å®ã®ããŒå
¥åã«å¿ããåŠçãè¡ãäŸã玹ä»ããŸãããã®ãããªããã°ã©ã ã¯ãç°¡åãªã²ãŒã ãã¡ãã¥ãŒã·ã¹ãã ãæ§ç¯ããéã«åœ¹ç«ã¡ãŸãã
ãµã³ãã«ã³ãŒãïŒæåå ¥åã«å¿ããã¡ãã¥ãŒæäœ
#include <stdio.h>
int main() {
char choice;
printf("ã¡ãã¥ãŒãéžæããŠãã ãã (a: ããã«ã¡ã¯, b: çµäº): ");
choice = getchar();
switch (choice) {
case 'a':
printf("ããã«ã¡ã¯ïŒ\n");
break;
case 'b':
printf("ããã°ã©ã ãçµäºããŸãã\n");
break;
default:
printf("ç¡å¹ãªéžæã§ãã\n");
}
return 0;
}
ãã®ããã°ã©ã ã§ã¯ããŠãŒã¶ãŒã’a’ãŸã㯒b’ãå
¥åããããšã§ãç¹å®ã®ã¡ãã»ãŒãžã衚瀺ãããŸããgetchar
ã䜿ãããšã§ãã·ã³ãã«ãªã¡ãã¥ãŒãå®çŸãããŠãŒã¶ãŒã®å
¥åã«å¿ããåŠçãè¡ããŸãã
å¿çšããã°ã©ã ïŒè€æ°ã®ã³ãã³ãã«å¯Ÿå¿
以äžã®ã³ãŒãã¯ããŠãŒã¶ãŒãç¹å®ã®æåãå ¥åãããšããã®å ¥åã«å¿ããåŠçãå®è¡ããäŸã§ãã
#include <stdio.h>
int main() {
char command;
printf("ã³ãã³ããå
¥åããŠãã ãã (l: ãªã¹ã衚瀺, h: æšæ¶, q: çµäº): ");
command = getchar();
switch (command) {
case 'l':
printf("ãªã¹ãã衚瀺ããŸãã\n");
break;
case 'h':
printf("ããã«ã¡ã¯ïŒ\n");
break;
case 'q':
printf("ããã°ã©ã ãçµäºããŸãã\n");
break;
default:
printf("ç¡å¹ãªã³ãã³ãã§ãã\n");
}
return 0;
}
ãã®ããã°ã©ã ã§ã¯ããŠãŒã¶ãŒãæå®ãããã³ãã³ãïŒl
ãh
ãq
ïŒãå
¥åãããšãããã«å¯Ÿå¿ããåŠçãå®è¡ãããŸãã

7. getcharã®æ³šæç¹ãšãã¹ããã©ã¯ãã£ã¹
ããããåé¡ç¹ïŒãããã¡ã®åŠç
getchar
ã䜿ãéã«æ°ãã€ãããã®ãããããã¡å
ã«æ®ã£ãããŒã¿ã次åã®å
¥åã«åœ±é¿ãäžããå¯èœæ§ãããããšã§ããããšãã°ãgetchar
ã1ååŒã³åºããåŸã«ããããã¡ã«æ®ã£ãæ¹è¡æåãæ¬¡ã®getchar
ã§ååŸãããŠããŸãããšããããŸãããã®ãããªç¶æ³ãé²ãããã«ã¯ããããã¡ã®ã¯ãªã¢ãå¿
èŠã§ãã
æ¹è¡æåãç¡èŠããæ¹æ³ïŒ
#include <stdio.h>
int main() {
int c;
printf("æåãå
¥åããŠãã ãã: ");
c = getchar();
while (getchar() != '\n'); // æ¹è¡æåãèªã¿é£ã°ã
printf("å
¥åãããæå: %c\n", c);
return 0;
}
ãã®ã³ãŒãã§ã¯ãgetchar
ã䜿ã£ãŠ1æåãå
¥åããåŸãæ¹è¡æåããããã¡ã«æ®ã£ãŠããããããããwhile
ã«ãŒãã§ç¡èŠããåŠçã远å ããŠããŸãã
ãã¹ããã©ã¯ãã£ã¹
- ãããã¡ã®ã¯ãªã¢ïŒå ¥åã®éã«ãããã¡å ã®æ¹è¡æåãåŠçããããšã§ã次ã®å ¥åã«åœ±é¿ãäžããªãããã«ããŸãã
- ãšã©ãŒãã³ããªã³ã°ïŒ
getchar
ã®æ»ãå€ãEOF
ã®å Žåã«é©åã«åŠçãè¡ãããã«ããŸããç¹ã«ãã¡ã€ã«ããã®å ¥åæã«ã¯éèŠã§ãã - å
¥åã®å¶éïŒé·ãæååãæ±ãå Žåããç¹å®ã®æ¡ä»¶ã«åºã¥ããå
¥åãæ±ããå Žåã¯ã
getchar
ãããfgets
ã®äœ¿çšãæ€èšããŸããããfgets
ã¯ãããã¡ãµã€ãºãæå®ã§ãããããã¡ãªãŒããŒãããŒãé²ãããã§ãã
8. ãŸãšããšæ¬¡ã®ã¹ããã
ãã®èšäºã§ã¯ãgetchar
颿°ã®åºæ¬çãªäœ¿ãæ¹ããå¿çšäŸãããã«scanf
ãfgets
ãšã®æ¯èŒãéããŠãCèšèªã«ãããå
¥ååŠçã®éèŠãªãã€ã³ãã解説ããŸãããgetchar
ã¯ã·ã³ãã«ã§ãããªãããããŸããŸãªå Žé¢ã§äœ¿ãã匷åãªããŒã«ã§ããç¹ã«å¯Ÿè©±åããã°ã©ã ããåçŽãªæåå
¥åã®åŠçã«ã¯é©ããŠããŸãã
次ã«åŠã¶ã¹ãã¹ããã
- fgetsãscanfã®ãããªã掻çšïŒæååãæ°å€ã®å
¥ååŠçãè¡ãããå Žåã«ã¯ã
fgets
ãscanf
ãšãã£ãä»ã®å ¥å颿°ã®äœ¿ãæ¹ãæ·±ãåŠã¶ããšãæå¹ã§ãã - ãã¡ã€ã«å
¥åã®å©çšïŒ
getchar
ã¯æšæºå ¥åã ãã§ãªãããã¡ã€ã«ããã®ããŒã¿èªã¿èŸŒã¿ã«ã䜿ããŸãããã¡ã€ã«å ¥åºåã®åŠçãåŠã¶ããšã§ãããã«å¿çšã®å¹ ãåºãããŸãã - ãšã©ãŒåŠçã®å®è·µïŒå
¥åæã®ãšã©ãŒãã³ããªã³ã°ïŒç¹ã«
EOF
ãäžæ£ãªå ¥åã«å¯ŸããåŠçïŒãæ£ç¢ºã«è¡ãããšã§ãããå ç¢ãªããã°ã©ã ãäœæããããšãã§ããŸãã
Cèšèªã®åºæ¬ãæŒãããäžã§ãå®çšçãªããã°ã©ã ãäœæããããã«ã¯ããããã®ç¥èãæ·±ããŠããããšãéèŠã§ãã