- 1 1. ã¯ããã«
- 2 2. æšæºå ¥åãšã¯
- 3 3. Cèšèªã§ã®æšæºå ¥åã®åºæ¬
- 4 4. å®å šãªæšæºå ¥åã®å®è£
- 5 5. å¿çšçãªæšæºå ¥åã®åŠç
- 6 6. ããããåé¡ãšãã®å¯ŸåŠæ³
- 7 7. æšæºå ¥åã䜿ã£ãå¿çšããã°ã©ã äŸ
- 8 8. ãŸãšã
1. ã¯ããã«
CèšèªãåŠã¶äžã§ããŠãŒã¶ãŒããã®å ¥åãæ±ããæšæºå ¥åãã¯é¿ããŠéããªãéèŠãªæ©èœã§ããæšæºå ¥åãæ£ããç解ããå®å šã«æ±ãããšã§ãããã°ã©ã ã®æ±çšæ§ãšä¿¡é Œæ§ã倧ããåäžãããããšãã§ããŸãã
æ¬èšäºã§ã¯ãCèšèªã«ãããæšæºå ¥åã®åºæ¬ããå¿çšãŸã§ãäœç³»çã«è§£èª¬ããŸããåå¿è ã§ãç解ããããããããµã³ãã«ã³ãŒãã亀ããªããé²ããŠãããŸãã®ã§ããã²ãèªèº«ã®ããã°ã©ã éçºã«åœ¹ç«ãŠãŠãã ããã
æšæºå ¥åã®éèŠæ§
æšæºå ¥åã¯ãããã°ã©ã ãå€éšããããŒã¿ãåãåãããã®åºæ¬çãªä»çµã¿ã§ããäŸãã°ã次ã®ãããªå Žé¢ã§å©çšãããŸãïŒ
- ãŠãŒã¶ãŒãå ¥åããæ°å€ãçšããèšç®ã¢ããª
- æååã䜿ã£ãæ€çŽ¢æ©èœ
- ã³ãã³ãã©ã€ã³ããã®æ瀺ã«å¿ããåçãªããã°ã©ã
ããããã±ãŒã¹ã§ã¯ãæšæºå ¥åãæ£ããæ±ãããšã§ãå¹ççãã€å®å šãªããã°ã©ã ãæ§ç¯ã§ããŸãã
æ¬èšäºã§åŠã¹ãããš
ãã®èšäºã§ã¯ä»¥äžã®å 容ãåãäžããŸãïŒ
- æšæºå ¥åã®åºæ¬çãªä»çµã¿ãšCèšèªã§ã®å®è£ æ¹æ³
scanf
ãfgets
ãªã©ã®é¢æ°ã®äœ¿ãæ¹- å®å šã§ä¿¡é Œæ§ã®é«ãæšæºå ¥åã®å®è£ æ¹æ³
- å¿çšçãªããŒã¿åŠçã®ãã¯ããã¯
- ããããåé¡ãšãã®å¯ŸåŠæ³
èšäºã®å¯Ÿè±¡è
- åããŠCèšèªãåŠã¶åå¿è
- æšæºå ¥åã®äœ¿ãæ¹ã«èªä¿¡ããªãããã°ã©ã
- å®å šã§å¹ççãªå ¥ååŠçãå®çŸãããæ¹
2. æšæºå ¥åãšã¯
Cèšèªã«ãããæšæºå ¥åã¯ãããã°ã©ã ãå€éšããããŒã¿ãåãåãããã®åºæ¬çãªä»çµã¿ã§ããæšæºå ¥åã¯ãæšæºå ¥åºåãã®äžéšã§ãããã¿ãŒããã«ãã³ãã³ãã©ã€ã³ãä»ããŠãŠãŒã¶ãŒãããã°ã©ã ã«å¯ŸããŠããŒã¿ãæäŸããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãæšæºå ¥åã®åºæ¬çãªæŠå¿µã圹å²ã«ã€ããŠè§£èª¬ããŸãã
æšæºå ¥åã®å®çŸ©
æšæºå
¥åïŒStandard Inputãstdin
ïŒã¯ãããã°ã©ã ãå€éšããããŒã¿ãåãåãããã«äœ¿çšããããŒã¿ã¹ããªãŒã ã®ããšãæããŸããCèšèªã§ã¯ãstdio.h
ã©ã€ãã©ãªãå©çšããããšã§ããã®æšæºå
¥åãç°¡åã«æäœããããšãã§ããŸãã
- ããŒã¿ã¯éåžžãããŒããŒãããå ¥åãããŸãã
- å ¥åãããããŒã¿ã¯ããã°ã©ã å ã§åŠçãããçµæãæšæºåºåã«åºåãããŸãã
æšæºå ¥åºåã®ä»çµã¿
Cèšèªã§ã¯ã以äžã®3ã€ã®æšæºã¹ããªãŒã ãçšæãããŠããŸãïŒ
- æšæºå ¥åïŒstdinïŒ: å€éšããããŒã¿ãåãåãããã«äœ¿çšã
- æšæºåºåïŒstdoutïŒ: ããã°ã©ã ã®çµæãåºåããããã«äœ¿çšã
- æšæºãšã©ãŒåºåïŒstderrïŒ: ãšã©ãŒã¡ãã»ãŒãžãåºåããããã«äœ¿çšã
å®éã®åäœäŸ
次ã®äŸã¯ãæšæºå ¥åã䜿ã£ãŠæ°å€ãåãåãããã®å€ãæšæºåºåã«åºåããç°¡åãªããã°ã©ã ã§ãã
#include <stdio.h>
int main() {
int number;
printf("æ°å€ãå
¥åããŠãã ãã: ");
scanf("%d", &number); // æšæºå
¥åããæŽæ°ãèªã¿åã
printf("å
¥åãããæ°å€ã¯: %d\n", number); // æšæºåºåã«åºå
return 0;
}
æšæºå ¥åã®åœ¹å²ãšéèŠæ§
æšæºå ¥åã¯ã次ã®ãããªããã°ã©ã ã§æŽ»çšãããŸãïŒ
- ããŒã¿åŠçããã°ã©ã : æ°å€ãæååãå ¥åããèšç®ãåæãè¡ãã
- ã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³: ãŠãŒã¶ãŒããã®æ瀺ãåãåã£ãŠåäœãå€æŽããã
- åçãªããŒã¿æäœ: ãŠãŒã¶ãŒãå ¥åããããŒã¿ããªã¢ã«ã¿ã€ã ã§æäœã
æšæºå ¥åã®å©ç¹
- æè»æ§: ããŒããŒãããã€ãããªãã€ã¬ã¯ããªã©ãããŸããŸãªå ¥åå ããµããŒãã
- 簡䟿æ§: çµã¿èŸŒã¿ã®
scanf
ãfgets
ã䜿çšããããšã§ãç°¡åã«å ¥åãåŠçå¯èœã
3. Cèšèªã§ã®æšæºå ¥åã®åºæ¬
Cèšèªã§ã¯ãæšæºå
¥åãå©çšããŠãŠãŒã¶ãŒããããŒã¿ãååŸããããã«ãããã€ãã®é¢æ°ãçšæãããŠããŸããæãåºæ¬çãªãã®ãšããŠãscanf
ãšfgets
ãæããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãããããã®é¢æ°ã®äœ¿ãæ¹ãç¹æ§ãå
·äœäŸãšãšãã«è§£èª¬ããŸãã
scanf
é¢æ°ã®äœ¿ãæ¹
scanf
ã¯ããã©ãŒãããæå®åãçšããŠå
¥åãããããŒã¿ã解æããå€æ°ã«æ ŒçŽããããã®é¢æ°ã§ãã
åºæ¬æ§æ
int scanf(const char *format, ...);
format
: ããŒã¿ã®åœ¢åŒãæå®ãããã©ãŒãããæååã...
: å ¥åãããããŒã¿ãæ ŒçŽããå€æ°ã®ã¢ãã¬ã¹ã
äž»ãªãã©ãŒãããæå®å
æå®å | 説æ | äŸ |
---|---|---|
%d | æŽæ° | 42 |
%f | æµ®åå°æ°ç¹æ° | 3.14 |
%c | 1æå | A |
%s | æåå | Hello |
䜿çšäŸ
#include <stdio.h>
int main() {
int age;
printf("幎霢ãå
¥åããŠãã ãã: ");
scanf("%d", &age); // æŽæ°ãèªã¿åã
printf("å
¥åããã幎霢ã¯: %d\n", age);
return 0;
}
泚æç¹
- å ¥åæã«æ£ãã圢åŒã§ããŒã¿ãäžããªããšãšã©ãŒãçºçããå¯èœæ§ããããŸãã
- ãããã¡ãªãŒããŒãããŒãé²ãããã«ãå
¥åãµã€ãºãå¶éããããšãéèŠã§ãïŒäŸïŒ
%s
ã®äœ¿çšæïŒã
fgets
é¢æ°ã®äœ¿ãæ¹
fgets
ã¯ãè¡åäœã§æååãèªã¿åãããã«äœ¿çšãããé¢æ°ã§ãscanf
ãããå®å
šæ§ãé«ããšãããŠããŸãã
åºæ¬æ§æ
char *fgets(char *str, int n, FILE *stream);
str
: å ¥åãæ ŒçŽããæåé åãn
: èªã¿åãæ倧æåæ°ïŒé åã®ãµã€ãºïŒãstream
: å ¥åå ïŒéåžžã¯stdin
ïŒã
䜿çšäŸ
#include <stdio.h>
int main() {
char name[50];
printf("ååãå
¥åããŠãã ãã: ");
fgets(name, 50, stdin); // æ倧49æåãèªã¿åã
printf("å
¥åãããååã¯: %s", name);
return 0;
}
泚æç¹
- å ¥åããããã¡ãµã€ãºãè¶ ããå Žåãæ®ãã®ããŒã¿ã¯åãæšãŠãããŸãã
- æ¹è¡æåãå«ãŸããå Žåã¯æåã§åé€ããå¿ èŠããããŸãã
æ¹è¡æåãåé€ããæ¹æ³
name[strcspn(name, "\n")] = '\0';
scanf
ãšfgets
ã®æ¯èŒ
ç¹åŸŽ | scanf | fgets |
---|---|---|
çšé | ãã©ãŒãããæå®ã«ããæ°å€ãæååã®èªã¿åã | è¡åäœã®æååèªã¿åã |
å®å šæ§ | ãããã¡ãªãŒããŒãããŒã®ãªã¹ã¯ãã | ãããã¡ãµã€ãºãå¶åŸ¡å¯èœ |
æè»æ§ | ãã©ãŒãããæå®ãå¯èœ | å ¥åå šäœãæååãšããŠååŸ |
ã©ã¡ãã䜿ãã¹ããïŒ
scanf
ã䜿çšããå Žå: æ°å€ãç¹å®ã®ããŒã¿åœ¢åŒãçŽæ¥ååŸããããšããfgets
ã䜿çšããå Žå: å®å šæ§ãéèŠããé·ãæååãè€éãªå ¥åãåŠçããããšãã
4. å®å šãªæšæºå ¥åã®å®è£
Cèšèªã§æšæºå ¥åãæ±ãéãå®å šæ§ã確ä¿ããããšãéåžžã«éèŠã§ããäžé©åãªå ¥ååŠçã¯ããããã¡ãªãŒããŒãããŒãæªå®çŸ©åäœãåŒãèµ·ãããããã°ã©ã ã®ä¿¡é Œæ§ãæãªãå¯èœæ§ããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãå®å šãªæšæºå ¥åã®å®è£ æ¹æ³ãå ·äœçãªäŸãšãšãã«è§£èª¬ããŸãã
ãããã¡ãªãŒããŒãããŒãé²ã
scanf
é¢æ°ã¯äŸ¿å©ã§ãããå
¥åãµã€ãºãå¶éããªãå Žåããããã¡ãªãŒããŒãããŒãçºçããå¯èœæ§ããããŸãããããé²ãããã«ã¯ããã©ãŒãããæå®åã«å
¥åãµã€ãºãæå®ããããšãéèŠã§ãã
å ¥åãµã€ãºãå¶éããäŸ
#include <stdio.h>
int main() {
char input[10];
printf("æ倧9æåã®æååãå
¥åããŠãã ãã: ");
scanf("%9s", input); // æ倧9æåãèªã¿åã
printf("å
¥åãããæåå: %s\n", input);
return 0;
}
ãã€ã³ã
%9s
ã®ããã«ãå ¥åãµã€ãºãæå®ããããšã§ãé åãµã€ãºãè¶ ããå ¥åãé²ããŸãã
å®å
šãªå
¥åã«ã¯fgets
ã䜿çš
fgets
ã¯ãèªã¿åãæåæ°ãæå®ã§ããããããããã¡ãªãŒããŒãããŒã®ãªã¹ã¯ãäœæžããŸããç¹ã«é·ãæååãè¡åäœã®å
¥åãæ±ãå Žåã«é©ããŠããŸãã
fgets
ã®å®è£
äŸ
#include <stdio.h>
#include <string.h>
int main() {
char buffer[20];
printf("æååãå
¥åããŠãã ãã: ");
fgets(buffer, sizeof(buffer), stdin); // æ倧19æåãèªã¿åã
buffer[strcspn(buffer, "\n")] = '\0'; // æ¹è¡ãåé€
printf("å
¥åãããæåå: %s\n", buffer);
return 0;
}
ãã€ã³ã
sizeof(buffer)
ã䜿ãããšã§ãããã¡ãµã€ãºãèªåçã«èšå®ãstrcspn
é¢æ°ãçšããŠãå ¥åãããæ¹è¡æåãåé€ããŠããŸãã
å ¥åããŒã¿ã®æ€èšŒ
å®å šãªå ¥åãå®çŸããããã«ã¯ããŠãŒã¶ãŒãå ¥åããããŒã¿ãæ€èšŒããããšãéèŠã§ããäŸãã°ãæ°å€ãå ¥åãããå ŽåãæååãšããŠå ¥åãåãåããé©åãªå€æãšãšã©ãŒãã§ãã¯ãè¡ãæ¹æ³ããããŸãã
æ°å€å ¥åã®æ€èšŒäŸ
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main() {
char buffer[20];
long number;
char *endptr;
printf("æŽæ°ãå
¥åããŠãã ãã: ");
fgets(buffer, sizeof(buffer), stdin);
errno = 0; // ãšã©ãŒç¶æ
ããªã»ãã
number = strtol(buffer, &endptr, 10); // æååãæŽæ°ã«å€æ
if (errno != 0 || endptr == buffer || *endptr != '\0') {
printf("æå¹ãªæŽæ°ãå
¥åããŠãã ããã\n");
} else {
printf("å
¥åãããæŽæ°: %ld\n", number);
}
return 0;
}
ãã€ã³ã
strtol
ã䜿çšãããšãå ¥åã®æ°å€å€æäžã«çºçãããšã©ãŒãæ€åºå¯èœãerrno
ãšendptr
ã䜵çšããããšã§ãå€æçµæã劥åœãã©ããã確èªããŸãã
ãšã©ãŒãã³ããªã³ã°ã®ãã¹ããã©ã¯ãã£ã¹
æšæºå ¥åã§ã¯ããšã©ãŒãã³ããªã³ã°ãé©åã«å®è£ ããããšãä¿¡é Œæ§åäžã®éµã§ãã
ãšã©ãŒãã§ãã¯ãè¡ãäŸ
#include <stdio.h>
int main() {
int value;
printf("æŽæ°ãå
¥åããŠãã ãã: ");
if (scanf("%d", &value) != 1) { // å
¥åã倱æããå Žå
printf("å
¥åãç¡å¹ã§ãã\n");
return 1; // ãšã©ãŒçµäº
}
printf("å
¥åãããæŽæ°: %d\n", value);
return 0;
}
ãã€ã³ã
scanf
ã®æ»ãå€ã確èªããæ£ãã圢åŒã§å ¥åãããªãã£ãå Žåã«ãšã©ãŒåŠçãè¡ããŸãã
å®å šãªå ¥ååŠçã®ãŸãšã
scanf
ã䜿çšããå Žåã¯ããã©ãŒãããæå®åã§ãµã€ãºãå¶éããã- é·ãæååãè¡åäœã®å
¥åã«ã¯ã
fgets
ã䜿çšããã - ãŠãŒã¶ãŒå ¥åãä¿¡é Œãããåžžã«æ€èšŒãšãšã©ãŒãã³ããªã³ã°ãè¡ãã
5. å¿çšçãªæšæºå ¥åã®åŠç
åºæ¬çãªæšæºå ¥åã®äœ¿ãæ¹ãç解ããåŸã¯ãå¿çšçãªåŠçãç¿åŸããããšã§ãããè€éãªå ¥åããŒã¿ãã·ããªãªã«å¯Ÿå¿ã§ããããã«ãªããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãè€æ°ããŒã¿ã®äžæ¬å ¥åãæ¹è¡ã»ç©ºçœã®æ±ããªã©ãæšæºå ¥åãå¹ççã«æŽ»çšããæ¹æ³ã解説ããŸãã
è€æ°ããŒã¿ãäžæ¬å ¥åãã
è€æ°ã®ããŒã¿ãæšæºå ¥åã§åãåãããããããåŠçããå Žé¢ã¯å€ããããŸããããã§ã¯ãã¹ããŒã¹ãã«ã³ãã§åºåãããããŒã¿ãèªã¿åãæ¹æ³ã解説ããŸãã
ã¹ããŒã¹åºåãã®å ¥åãåŠçããäŸ
#include <stdio.h>
int main() {
int numbers[5];
printf("5ã€ã®æŽæ°ãã¹ããŒã¹åºåãã§å
¥åããŠãã ãã: ");
for (int i = 0; i < 5; i++) {
scanf("%d", &numbers[i]); // ã¹ããŒã¹åºåãã§å
¥å
}
printf("å
¥åãããæŽæ°: ");
for (int i = 0; i < 5; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
ã«ã³ãåºåãã®å ¥åãåŠçããäŸ
#include <stdio.h>
int main() {
int numbers[3];
printf("3ã€ã®æŽæ°ãã«ã³ãåºåãã§å
¥åããŠãã ãã: ");
scanf("%d,%d,%d", &numbers[0], &numbers[1], &numbers[2]); // ã«ã³ãåºåãã§å
¥å
printf("å
¥åãããæŽæ°: %d, %d, %d\n", numbers[0], numbers[1], numbers[2]);
return 0;
}
æ¹è¡ã空çœãå«ãå ¥åã®æ±ã
æšæºå ¥åã§ã¯ãæ¹è¡æåã空çœæåãæ··åšããã±ãŒã¹ããããŸããããããæ£ç¢ºã«åŠçããæ¹æ³ãèŠãŠãããŸãããã
æ¹è¡ãæ£ããåŠçããäŸ
æ¹è¡æåãå«ãå
¥åãåŠçããã«ã¯ãfgets
ã䜿çšããæ¹è¡æåãæåã§åé€ããŸãã
#include <stdio.h>
#include <string.h>
int main() {
char input[100];
printf("æç« ãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // æ¹è¡ãåé€
printf("å
¥åãããæç« : %s\n", input);
return 0;
}
è€æ°è¡ã®å ¥åãåŠçãã
è€æ°è¡ã®å ¥åãåãåããè¡ããšã«åŠçãè¡ãããã°ã©ã ã¯ãããã¹ã解æãããŒã¿åŠçã§é »ç¹ã«å©çšãããŸãã
è€æ°è¡ãç¹°ãè¿ãåŠçããäŸ
#include <stdio.h>
int main() {
char line[100];
printf("è€æ°è¡ã®ããã¹ããå
¥åããŠãã ããïŒçµäºããã«ã¯ Ctrl+D ãæŒããŠãã ããïŒ:\n");
while (fgets(line, sizeof(line), stdin) != NULL) {
printf("å
¥åãããè¡: %s", line);
}
return 0;
}
åçãªå ¥åããŒã¿ã®åŠç
å ¥åããŒã¿ãåçã«å€ããå Žåãå¹ççã«åŠçããããã®å·¥å€«ãå¿ èŠã§ãã次ã®äŸã§ã¯ãæªç¥ã®æ°ã®æŽæ°ãå ¥åããåèšãèšç®ããŸãã
åçãªå ¥åããŒã¿ã®åŠçäŸ
#include <stdio.h>
int main() {
int number, sum = 0;
printf("æŽæ°ãå
¥åããŠãã ããïŒçµäºããã«ã¯ Ctrl+D ãæŒããŠãã ããïŒ:\n");
while (scanf("%d", &number) == 1) {
sum += number;
}
printf("å
¥åãããæŽæ°ã®åèš: %d\n", sum);
return 0;
}
ãŸãšã
å¿çšçãªæšæºå ¥ååŠçã掻çšããããšã§ãè€éãªããŒã¿ãåçãªã·ããªãªã«å¯Ÿå¿ã§ããããã°ã©ã ãæ§ç¯ã§ããŸããè€æ°ããŒã¿ã®åŠçãæ¹è¡ã®æ±ãã«æ £ããããšã§ãããã«é«åºŠãªããã°ã©ã èšèšãå¯èœã«ãªããŸãã
6. ããããåé¡ãšãã®å¯ŸåŠæ³
Cèšèªã§æšæºå ¥åãæ±ãéãåå¿è ãããçŽé¢ããåé¡ãšãã®è§£æ±ºæ¹æ³ããŸãšããŸããããããã®åé¡ãç解ããé©åãªå¯ŸåŠæ³ã身ã«ã€ããããšã§ãããä¿¡é Œæ§ã®é«ãããã°ã©ã ãäœæã§ããããã«ãªããŸãã
scanf
ã®åé¡ãšå¯ŸåŠæ³
åé¡1: å ¥åã¹ãããåé¡
scanf
ã§æååãæŽæ°ãèªã¿åãéãæ¹è¡ã空çœæåã次ã®å
¥ååŠçã«åœ±é¿ãäžããããšããããŸãã
äŸ
#include <stdio.h>
int main() {
int number;
char letter;
printf("æŽæ°ãå
¥åããŠãã ãã: ");
scanf("%d", &number);
printf("æåãå
¥åããŠãã ãã: ");
scanf("%c", &letter); // æ¹è¡æåãèªã¿åã£ãŠããŸã
printf("å
¥åãããæŽæ°: %d, æå: %c\n", number, letter);
return 0;
}
解決æ³
æ¹è¡æåãäœåãªå
¥åãç¡èŠããããã«ãscanf
ã®åã«ç©ºçœæåãè¿œå ããŸãã
scanf(" %c", &letter); // 空çœãå ããããšã§äœåãªæ¹è¡ãç¡èŠ
åé¡2: ãããã¡ãªãŒããŒãããŒ
scanf
ã§é·ãæååãèªã¿åãéãå
¥åããããã¡ãè¶
ãããšããã°ã©ã ãã¯ã©ãã·ã¥ããå¯èœæ§ããããŸãã
äŸ
char input[10];
scanf("%s", input); // å
¥åãµã€ãºã10æåãè¶
ãããšãªãŒããŒãããŒ
解決æ³
ãã©ãŒãããæå®åã§å ¥åãµã€ãºãå¶éããŸãã
scanf("%9s", input); // æ倧9æåã«å¶é
ãŸãã¯ãfgets
ã䜿çšããæ¹æ³ãå®å
šã§ãã
fgets
ã®åé¡ãšå¯ŸåŠæ³
åé¡1: æ¹è¡æåã®åãæ±ã
fgets
ã¯å
¥åã®æåŸã«æ¹è¡æåãå«ããããæååæ¯èŒãå å·¥æã«äºæããªãåäœãåŒãèµ·ããããšããããŸãã
äŸ
char input[20];
fgets(input, sizeof(input), stdin);
if (strcmp(input, "yes") == 0) {
printf("å
¥å㯠yes ã§ãã\n");
}
ãã®å Žåãfgets
ã§èªã¿åãããæåå㯠"yes\n"
ãšãªããæ¯èŒã倱æããŸãã
解決æ³
æ¹è¡æåãåé€ããŸãã
input[strcspn(input, "\n")] = '\0';
å ¥åãšã©ãŒã®å¯ŸåŠæ³
åé¡1: ç¡å¹ãªå ¥åã®åŠç
æ°å€ãæåŸ ããŠããå Žé¢ã§ãæååãå ¥åããããšããã°ã©ã ãæ£ããåäœããªããªãå ŽåããããŸãã
äŸ
int number;
scanf("%d", &number); // æååãå
¥åãããšåäœãäžå®å®
解決æ³
å ¥åã®åŠ¥åœæ§ããã§ãã¯ããæ¹æ³ãåãå ¥ããŸãã
if (scanf("%d", &number) != 1) {
printf("ç¡å¹ãªå
¥åã§ãã\n");
while (getchar() != '\n'); // å
¥åãããã¡ãã¯ãªã¢
}
è€æ°è¡å ¥åã«é¢ããåé¡
åé¡: scanf
ãšfgets
ã®æ··åš
scanf
ãšfgets
ãåãããã°ã©ã ã§äœ¿çšãããšãæå³ããªãåäœãçºçããããšããããŸãã
åå
scanf
ã¯æ¹è¡æåãæ®ããªãããã次ã«fgets
ãåŒã³åºããšããã®æ¹è¡æåãèªã¿åã£ãŠããŸããŸãã
解決æ³
scanf
ã®åŸã«å
¥åãããã¡ãã¯ãªã¢ããŸãã
while (getchar() != '\n');
ãŸãšã
Cèšèªã§ã®æšæºå
¥åã«ã¯å€ãã®èœãšãç©ŽããããŸãããåé¡ã®åå ãç解ãé©åã«å¯ŸåŠããããšã§ãå®å
šã§å¹ççãªããã°ã©ã ãäœæã§ããŸããç¹ã«ãscanf
ãšfgets
ã®ç¹æ§ãç解ããçšéã«å¿ããŠäœ¿ãåããããšãéèŠã§ãã

7. æšæºå ¥åã䜿ã£ãå¿çšããã°ã©ã äŸ
ããã§ã¯ãæšæºå ¥åã掻çšããå ·äœçãªããã°ã©ã äŸã玹ä»ããŸããåºæ¬çãªäœ¿ãæ¹ããå°ãå¿çšçãªã·ããªãªãŸã§ãå®è·µçãªã³ãŒããéããŠåŠãã§ãããŸãããã
äŸ1: æ°å€ã®åèšãšå¹³åãèšç®ããããã°ã©ã
è€æ°ã®æŽæ°ãæšæºå ¥åããåãåããåèšãšå¹³åãèšç®ããããã°ã©ã ã§ãã
#include <stdio.h>
int main() {
int numbers[100];
int count = 0, sum = 0;
float average;
printf("æŽæ°ãã¹ããŒã¹åºåãã§å
¥åããŠãã ããïŒçµäºããã«ã¯Ctrl+DãæŒããŠãã ããïŒ:\n");
while (scanf("%d", &numbers[count]) == 1) {
sum += numbers[count];
count++;
}
if (count > 0) {
average = (float)sum / count;
printf("åèš: %d, å¹³å: %.2f\n", sum, average);
} else {
printf("å
¥åãããæ°å€ããããŸããã\n");
}
return 0;
}
äŸ2: åæå€å®ããã°ã©ã
æååãåæïŒåããèªãã§ãåŸãããèªãã§ãåãïŒãã©ãããå€å®ããããã°ã©ã ã§ãã
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return false;
}
start++;
end--;
}
return true;
}
int main() {
char input[100];
printf("æååãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
// æ¹è¡ãåé€
input[strcspn(input, "\n")] = '\0';
if (isPalindrome(input)) {
printf("å
¥åãããæååã¯åæã§ãã\n");
} else {
printf("å
¥åãããæååã¯åæã§ã¯ãããŸããã\n");
}
return 0;
}
äŸ3: CSV圢åŒã®ããŒã¿ãåŠçããããã°ã©ã
CSVïŒã«ã³ãåºåãå€ïŒåœ¢åŒã®ããŒã¿ãèªã¿åããåå€ãåå¥ã«åŠçããããã°ã©ã ã§ãã
#include <stdio.h>
#include <string.h>
int main() {
char input[200];
char *token;
printf("CSV圢åŒã§ããŒã¿ãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
// æ¹è¡ãåé€
input[strcspn(input, "\n")] = '\0';
// ã«ã³ãã§åå²
token = strtok(input, ",");
while (token != NULL) {
printf("å€: %s\n", token);
token = strtok(NULL, ",");
}
return 0;
}
äŸ4: åçãªå ¥åãåãåã察話åããã°ã©ã
ãŠãŒã¶ãŒããè€æ°åå ¥åãåãåãããã®å ¥åå 容ã«å¿ããåŠçãè¡ãããã°ã©ã ã§ãã
#include <stdio.h>
#include <string.h>
int main() {
char input[50];
printf("çµäºããã«ã¯ 'exit' ãå
¥åããŠãã ããã\n");
while (1) {
printf("ã³ãã³ããå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
// æ¹è¡ãåé€
input[strcspn(input, "\n")] = '\0';
if (strcmp(input, "exit") == 0) {
printf("ããã°ã©ã ãçµäºããŸãã\n");
break;
} else {
printf("å
¥åãããã³ãã³ã: %s\n", input);
}
}
return 0;
}
ãŸãšã
å¿çšçãªæšæºå ¥åã®äœ¿ãæ¹ãåŠã¶ããšã§ãããå®è·µçã§ã€ã³ã¿ã©ã¯ãã£ããªããã°ã©ã ãäœæã§ããŸãããããã®äŸãåèã«ãèªèº«ã®ãããžã§ã¯ãã«åã£ãå ¥ååŠçæ¹æ³ã工倫ããŠã¿ãŠãã ããã
8. ãŸãšã
Cèšèªã«ãããæšæºå ¥åã®äœ¿ãæ¹ãåºæ¬ããå¿çšãŸã§è§£èª¬ããŠããŸãããæ¬èšäºãéããŠãæšæºå ¥åã®ä»çµã¿ãšå®å šã«æ±ãæ¹æ³ãããã«ã¯å¿çšçãªããã°ã©ã äŸãç解ããŠããã ããããšæããŸããããã§ã¯ãåŠãã å 容ãç°¡åã«æ¯ãè¿ããŸãã
æšæºå ¥åã®éèŠæ§ã®å確èª
- æšæºå ¥åã¯ãããã°ã©ã ãå€éšããããŒã¿ãåãåããåçã«åäœããããã®åºæ¬æ©èœã§ãã
- Cèšèªã§ã¯ã
scanf
ãfgets
ã䜿çšããŠãæ°å€ãæååãå ¥åããããšãã§ããŸãã
å®å šã§å¹ççãªå ¥ååŠçã®ãã€ã³ã
- ãããã¡ãªãŒããŒãããŒãé²ã
scanf
ã§å ¥åãµã€ãºãå¶éãã (%9s
ãªã©)ã- é·ãå
¥åãè¡åäœã®å
¥åã§ã¯
fgets
ã䜿çšããã
- å ¥åããŒã¿ã®æ€èšŒ
- æ°å€å
¥åã«ã¯
strtol
ãstrtod
ã掻çšãããšã©ãŒãæ€åºããã - äžæ£ãªå ¥åããã£ãå Žåãé©åãªãšã©ãŒãã³ããªã³ã°ãè¡ãã
- å¿çšçãªåŠç
- è€æ°ããŒã¿ã®äžæ¬å ¥åãæ¹è¡æåã®æ±ãã«æ³šæããªããåŠçãå®è£ ããã
次ã®ã¹ããã
æšæºå ¥åã®åºæ¬ãç¿åŸãããã以äžã®ã¹ãããã«é²ãããšã§ããã«ã¹ãã«ã磚ãããšãã§ããŸãã
- æšæºåºåãæšæºãšã©ãŒåºåã®æŽ»çšïŒãšã©ãŒã¡ãã»ãŒãžããã°ã®åºåæ¹æ³ãåŠã¶ã
- ãã¡ã€ã«æäœïŒæšæºå ¥åãšãã¡ã€ã«å ¥åãçµã¿åãããŠãããé«åºŠãªããã°ã©ã ãäœæããã
- å®è·µèª²é¡ã解ãïŒæ¬èšäºã®å¿çšããã°ã©ã äŸãåèã«ãç¬èªã®ã·ããªãªãèšèšããŠå®è£ ããŠã¿ãŠãã ããã
èªè ãžã®ã¡ãã»ãŒãž
æšæºå ¥åã¯Cèšèªããã°ã©ãã³ã°ã®åºç€ã§ãããªããã奥ãæ·±ãããŒãã§ããæ¬èšäºãåèã«ãå®å šãã€å¹ççãªå ¥ååŠçãç¿åŸãããããªãã¹ãã«åäžãç®æããŠãã ãããã©ããªå°ããªçåã§ããäžã€äžã€è§£æ±ºããªããé²ãããšããããã°ã©ãã³ã°åŠç¿ã®å€§ããªäžæ©ãšãªããŸãã