- 1 1. ã¯ããã«ïŒCèšèªã®å ¥åãšã¯ïŒ
- 2 2. åºæ¬çãªå ¥ååŠçãšé¢æ°ã®äœ¿ãæ¹
- 3 3. å¿çšçãªå ¥ååŠçã®è§£èª¬
- 4 4. æ¥æ¬èªãšãã«ããã€ãæåã®å ¥ååŠç
- 5 5. å®è·µäŸïŒç·åçãªå ¥åããã°ã©ã ã®äœæ
- 6 6. ãããããšã©ãŒãšãã©ãã«ã·ã¥ãŒãã£ã³ã°
- 7 7. ãŸãšããšæ¬¡ã®ã¹ããã
1. ã¯ããã«ïŒCèšèªã®å ¥åãšã¯ïŒ
Cèšèªã¯ãããã°ã©ãã³ã°èšèªã®äžã§ãåºã䜿çšãããŠãããã·ã¹ãã éçºãçµã¿èŸŒã¿ã·ã¹ãã ã§éèŠãªåœ¹å²ãæãããŠããŸãã
ãã®äžã§ããå
¥ååŠçãã¯ããŠãŒã¶ãŒããã®ããŒã¿ãååŸããŠããã°ã©ã ã«åæ ããããã«äžå¯æ¬ ãªæ©èœã§ãã
ãã®èšäºã§ã¯ãCèšèªã«ãããå
¥ååŠçã®åºæ¬ããå¿çšãŸã§ã詳ãã解説ããåå¿è
ããäžçŽè
ãŸã§åœ¹ç«ã€ç¥èãæäŸããŸãã
Cèšèªã§ã®å ¥åã®åœ¹å²
Cèšèªã«ãããå ¥åã¯ãäž»ã«ä»¥äžã®ç®çã§äœ¿çšãããŸãã
- ãŠãŒã¶ãŒã®ããŒã¿å ¥åïŒã³ã³ãœãŒã«ãããŠãŒã¶ãŒãæ°å€ãæååãå ¥åããŸãã
- ãã¡ã€ã«ã®èªã¿èŸŒã¿ïŒå€éšãã¡ã€ã«ããããŒã¿ãååŸããŠåŠçããŸãã
- ããŒã¿æ€èšŒãšå å·¥ïŒå ¥åããŒã¿ã確èªããå¿ èŠã«å¿ããŠä¿®æ£ã»å å·¥ãè¡ããŸãã
ããšãã°ããŠãŒã¶ãŒãå ¥åããæ°å€ãããšã«èšç®ãè¡ãããã°ã©ã ãããã¡ã€ã«ãã顧客æ å ±ãèªã¿èŸŒãã·ã¹ãã ãããã«è©²åœããŸãã
å ¥ååŠçã®éèŠæ§
å ¥ååŠçã¯ãããã°ã©ã ã®å®å šæ§ãä¿¡é Œæ§ã«çŽçµããŸããç¹ã«ä»¥äžã®ç¹ãæèããå¿ èŠããããŸãã
- ãšã©ãŒãã³ããªã³ã°ïŒå ¥åãã¹ãäºæããªãããŒã¿ã«ãããšã©ãŒãé©åã«åŠçããããšã§ãããã°ã©ã ãã¯ã©ãã·ã¥ããã®ãé²ããŸãã
- å®å šæ§ã®ç¢ºä¿ïŒãããã¡ãªãŒããŒãããŒãªã©ã®ã»ãã¥ãªãã£è匱æ§ãé²ãããã®å®å šãªé¢æ°ã䜿çšããŸãã
- å€æ§ãªããŒã¿åœ¢åŒãžã®å¯Ÿå¿ïŒæ°å€ãæååããã¡ã€ã«ãªã©ãããŸããŸãªåœ¢åŒã®ããŒã¿ã«å¯Ÿå¿ã§ããæè»ãªèšèšãæ±ããããŸãã
èšäºã®ç®çãšå 容
ãã®èšäºã§ã¯ãCèšèªã«ãããå ¥ååŠçã®åºæ¬ãšå¿çšã以äžã®ã¹ãããã§è§£èª¬ããŸãã
- æšæºå ¥åãšæšæºåºåã®ä»çµã¿
- åºæ¬çãªå ¥åé¢æ°ã®äœ¿ãæ¹ãšå®å šæ§ãžã®é æ ®
- å¿çšçãªå ¥ååŠçãšãã¡ã€ã«æäœ
- ãšã©ãŒãã³ããªã³ã°ãšãã«ããã€ãæåãžã®å¯Ÿå¿
ããã«ãå®è·µçãªãµã³ãã«ã³ãŒãã亀ããŠãå
·äœçãªäœ¿çšäŸã瀺ããŸãã
åå¿è
ã«ãç解ãããããäžçŽè
ã«ã¯å¿çšã®ãã³ããšãªãå
容ãç®æããŠããŸãã
次ã®ã¹ããã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãCèšèªã«ãããæšæºå
¥åãšæšæºåºåã®åºæ¬ã«ã€ããŠè©³ãã解説ããŸãã
å
¥ååŠçã®åºç€ããã£ãããšç解ããå®å
šãªã³ãŒããäœæãã第äžæ©ãèžã¿åºããŸãããã
2. åºæ¬çãªå ¥ååŠçãšé¢æ°ã®äœ¿ãæ¹
Cèšèªã§ã¯ãå ¥ååŠçãè¡ãããã«æšæºã©ã€ãã©ãªã®é¢æ°ãæäŸãããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãæšæºå ¥åãšæšæºåºåã®ä»çµã¿ã説æããå ·äœçãªé¢æ°ã®äœ¿ãæ¹ã解説ããŸãã
2.1 æšæºå ¥åãšæšæºåºåã®ä»çµã¿
Cèšèªã«ããããæšæºå ¥åããšã¯ãããŒããŒããªã©ããããŒã¿ãåãåãããã®ä»çµã¿ã§ããåæ§ã«ããæšæºåºåãã¯ãç»é¢ã«çµæã衚瀺ããããã®ä»çµã¿ãæããŸãã
æšæºå ¥å (stdin) ãšæšæºåºå (stdout) ã®æŠèŠ
- æšæºå ¥å (stdin)ïŒããŒããŒããããŠãŒã¶ãŒãå ¥åããããŒã¿ãåãåãããã«äœ¿ãããŸãã
- æšæºåºå (stdout)ïŒåãåã£ãããŒã¿ãåŠççµæãç»é¢ã«è¡šç€ºããããã«äœ¿ãããŸãã
ãããã¯ãæšæºã©ã€ãã©ãª <stdio.h>
ã«å®çŸ©ãããŠãããããã°ã©ã å
ã§èªç±ã«äœ¿çšã§ããŸãã
åºæ¬çãªããã°ã©ã äŸ
以äžã¯ãæšæºå ¥åããæŽæ°ã1ã€åãåããæšæºåºåã§ãã®å€ã衚瀺ããããã°ã©ã ã§ãã
#include <stdio.h>
int main() {
int number;
printf("æŽæ°ãå
¥åããŠãã ãã: ");
scanf("%d", &number); // æšæºå
¥åããæŽæ°ãèªã¿åã
printf("å
¥åãããå€ã¯ %d ã§ãã
", number); // æšæºåºåã«çµæã衚瀺ãã
return 0;
}
ãã®ããã°ã©ã ã§ã¯ããŠãŒã¶ãŒãããŒããŒãããå
¥åããæ°å€ãå€æ°number
ã«æ ŒçŽãããç»é¢ã«åºåãããŸãã
2.2 scanf
é¢æ°ã«ããå
¥ååŠç
scanf
é¢æ°ã®åºæ¬æ§æ
scanf("ãã©ãŒãããæå®å", ã¢ãã¬ã¹);
ãã©ãŒãããæå®åã¯ãå ¥åãããããŒã¿ã®åãæå®ããŸããäž»ãªæå®åã¯ä»¥äžã®éãã§ãã
æå®å | ããŒã¿å | 説æ |
---|---|---|
%d | int | æŽæ° |
%f | float | æµ®åå°æ°ç¹æ° |
%lf | double | å粟床浮åå°æ°ç¹æ° |
%c | char | 1æå |
%s | charé å | æåå |
å®è·µäŸïŒè€æ°ã®ããŒã¿å ¥å
#include <stdio.h>
int main() {
int age;
float height;
printf("幎霢ãšèº«é·ãã¹ããŒã¹åºåãã§å
¥åããŠãã ãã: ");
scanf("%d %f", &age, &height); // æŽæ°ãšæµ®åå°æ°ç¹æ°ãå
¥å
printf("幎霢: %d, 身é·: %.2f
", age, height);
return 0;
}
ãã®ããã°ã©ã ã§ã¯ã幎霢ãšèº«é·ãåæã«å ¥åããããããã®å€æ°ã«æ ŒçŽããŠè¡šç€ºããŸãã
泚æç¹ïŒãããã¡ãªãŒããŒãããŒ
scanf
é¢æ°ã§ã¯ãæ³å®å€ã®å
¥åãµã€ãºã«ãã£ãŠãããã¡ãªãŒããŒãããŒãçºçãããããã泚æãå¿
èŠã§ããç¹ã«æååå
¥åã§ã¯ãå¶éãèšããªããšã¡ã¢ãªãç Žå£ãããå±éºæ§ããããŸãã
2.3 æååå ¥åãšå®å šãªåŠç
gets
é¢æ°ã¯éæšå¥š
åŸæ¥ã®Cèšèªã§ã¯æååå
¥åã«gets
é¢æ°ã䜿çšãããŠããŸãããããããã¡ãªãŒããŒãããŒãé²ãä»çµã¿ããªããã»ãã¥ãªãã£äžã®åé¡ãã䜿çšã¯æšå¥šãããŠããŸããã
å®å
šãªä»£æ¿é¢æ°ïŒfgets
çŸåšã§ã¯ãfgets
é¢æ°ãå®å
šãªæååå
¥åãšããŠæšå¥šãããŠããŸãã
#include <stdio.h>
int main() {
char name[50];
printf("ååãå
¥åããŠãã ãã: ");
fgets(name, sizeof(name), stdin); // å®å
šã«æååãå
¥å
printf("å
¥åãããååã¯: %s", name);
return 0;
}
ãã€ã³ãïŒfgets
ã§ã¯ãå
¥åãµã€ãºãå¶éããããšãã§ããããããããã¡ãªãŒããŒãããŒã®å±éºãé²ãããšãã§ããŸãã
æååã®æ¹è¡é€å»
fgets
ã¯æ¹è¡æåãå«ãããããããåãé€ãåŠçãè¿œå ããå¿
èŠããããŸãã
name[strcspn(name, "
")] = ' '; // æ¹è¡æåãåãé€ã
2.4 å ¥åã®ãšã©ãŒåŠç
äžæ£å ¥åã®æ€åº
ãŠãŒã¶ãŒãæåŸ
ããã圢åŒãšã¯ç°ãªãããŒã¿ãå
¥åããå Žåãscanf
ã¯ãšã©ãŒãæ€åºã§ããŸãã
#include <stdio.h>
int main() {
int number;
printf("æŽæ°ãå
¥åããŠãã ãã: ");
if (scanf("%d", &number) != 1) { // æ£åžžã«1ã€ã®å
¥åãååŸãããã確èª
printf("ç¡å¹ãªå
¥åã§ãã
");
return 1; // ãšã©ãŒçµäº
}
printf("å
¥åãããå€: %d
", number);
return 0;
}
ãã®ã³ãŒãã§ã¯ãæŽæ°ä»¥å€ãå ¥åãããå Žåã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŠããã°ã©ã ãçµäºããŸãã
3. å¿çšçãªå ¥ååŠçã®è§£èª¬
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCèšèªã«ãããå¿çšçãªå ¥ååŠçã«ã€ããŠè§£èª¬ããŸããå ·äœçã«ã¯ããã¡ã€ã«ããã®å ¥ååŠçããšã©ãŒãã³ããªã³ã°ãæ°å€å€æã«ã€ããŠè©³ããèŠãŠãããŸãã
3.1 ãã¡ã€ã«ããã®å ¥ååŠç
Cèšèªã§ã¯ãæšæºå ¥åã ãã§ãªãããã¡ã€ã«ããã®ããŒã¿å ¥åãéèŠãªåŠçã®äžã€ã§ããããã°ã©ã ãå€éšããŒã¿ãå©çšããéã«åœ¹ç«ã¡ãŸãã
ãã¡ã€ã«ã®ãªãŒãã³ãšã¯ããŒãº
ãã¡ã€ã«ãæ±ãã«ã¯ããŸãfopen
é¢æ°ã§ãã¡ã€ã«ãéããfclose
é¢æ°ã§éããŸãã
#include <stdio.h>
int main() {
FILE *file; // ãã¡ã€ã«ãã€ã³ã¿ã宣èš
file = fopen("data.txt", "r"); // ãã¡ã€ã«ãèªã¿åãå°çšã§éã
if (file == NULL) { // ãšã©ãŒãã§ãã¯
printf("ãã¡ã€ã«ãéããŸããã§ããã
");
return 1;
}
printf("ãã¡ã€ã«ãæ£åžžã«éãããŸããã
");
fclose(file); // ãã¡ã€ã«ãéãã
return 0;
}
ãã®ã³ãŒãã§ã¯ããã¡ã€ã«ãååšããªãå Žåã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããããã°ã©ã ãçµäºããŸãã
fscanf
é¢æ°ã«ãããã¡ã€ã«å
¥å
fscanf
é¢æ°ã䜿ããšããã¡ã€ã«ãããã©ãŒãããã«åŸã£ãããŒã¿ãèªã¿åãããšãã§ããŸãã
#include <stdio.h>
int main() {
FILE *file;
int id;
char name[50];
file = fopen("data.txt", "r");
if (file == NULL) {
printf("ãã¡ã€ã«ãéããŸããã§ããã
");
return 1;
}
while (fscanf(file, "%d %s", &id, name) != EOF) { // EOFãŸã§ç¹°ãè¿ã
printf("ID: %d, åå: %s
", id, name);
}
fclose(file);
return 0;
}
ãã®äŸã§ã¯ãdata.txt
ããæ°å€ãšæååãé ã«èªã¿åããŸãã
3.2 å ¥åããŒã¿ã®æ€èšŒãšãšã©ãŒãã³ããªã³ã°
ããã°ã©ã ã«å ¥åãããããŒã¿ã¯åžžã«æ£ãããšã¯éãããäžæ£ããŒã¿ãå«ãŸããããšããããŸãããã®ããããšã©ãŒãã³ããªã³ã°ã¯å®å šãªããã°ã©ã äœæã®ããã«æ¬ ãããŸããã
ç¡å¹ããŒã¿ã®æ€åº
以äžã®ã³ãŒãã¯ãæŽæ°ä»¥å€ãå ¥åãããå Žåã«ãšã©ãŒãæ€åºããŸãã
#include <stdio.h>
int main() {
int number;
printf("æŽæ°ãå
¥åããŠãã ãã: ");
while (scanf("%d", &number) != 1) { // æ£ãã圢åŒã§ãªãå Žå
printf("ç¡å¹ãªå
¥åã§ããããäžåºŠå
¥åããŠãã ãã: ");
while (getchar() != '
'); // å
¥åãããã¡ãã¯ãªã¢
}
printf("å
¥åãããæŽæ°ã¯ %d ã§ãã
", number);
return 0;
}
ãã®äŸã§ã¯ãç¡å¹ãªå ¥åãæ€åºããããšåå ¥åãæ±ããä»çµã¿ãå®è£ ããŠããŸãã
3.3 æ°å€å€æãšãã©ãŒãããæå®
ããã°ã©ã ã§ã¯ãæååããæ°å€ãžã®å€æãå¿
èŠãªå Žé¢ãå€ããããŸããCèšèªã§ã¯ãstrtol
ãstrtod
ãšãã£ãé¢æ°ã䜿ã£ãŠæè»ã«åŠçã§ããŸãã
æååããæŽæ°ãžã®å€æ (strtol
)
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[20];
char *endptr; // ãšã©ãŒæ€åºçšãã€ã³ã¿
long value;
printf("æ°å€ãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
value = strtol(input, &endptr, 10); // 10é²æ°ã§å€æ
if (*endptr != ' ' && *endptr != '
') { // å€æãšã©ãŒã®ç¢ºèª
printf("ç¡å¹ãªæ°å€ã§ãã
");
} else {
printf("å
¥åãããå€ã¯ %ld ã§ãã
", value);
}
return 0;
}
ãã®ã³ãŒãã§ã¯ãæååããæŽæ°ãžã®å€æãè¡ããäžæ£ããŒã¿ãå«ãŸããå Žåã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŸãã
æµ®åå°æ°ç¹æ°ãžã®å€æ (strtod
)
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[20];
char *endptr;
double value;
printf("æ°å€ãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
value = strtod(input, &endptr); // æµ®åå°æ°ç¹ãžã®å€æ
if (*endptr != ' ' && *endptr != '
') {
printf("ç¡å¹ãªæ°å€ã§ãã
");
} else {
printf("å
¥åãããå€ã¯ %.2f ã§ãã
", value);
}
return 0;
}
ãã®äŸã§ã¯ãå°æ°ç¹ãå«ãæ°å€ãæ£ç¢ºã«åŠçã§ããŸãã
4. æ¥æ¬èªãšãã«ããã€ãæåã®å ¥ååŠç
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãæ¥æ¬èªãå«ããã«ããã€ãæåã®å ¥ååŠçã«ã€ããŠè§£èª¬ããŸããæ¥æ¬èªãªã©ã®éASCIIæåãæ£ããæ±ãããã«ã¯ãæåã³ãŒãã®ç解ãé©åãªé¢æ°ã®äœ¿çšãéèŠã§ãã
4.1 æ¥æ¬èªãæ±ãããã®æºå
æåã³ãŒããšãšã³ã³ãŒãã£ã³ã°ã®éã
æ¥æ¬èªãæ±ãå Žåãæåã³ãŒãããšã³ã³ãŒãã£ã³ã°ãé©åã«èšå®ããå¿ èŠããããŸããäž»ã«ä»¥äžã®3çš®é¡ã䜿çšãããŸãã
æåã³ãŒã | ç¹åŸŽ |
---|---|
UTF-8 | äžçæšæºã®æåã³ãŒããå€ãã®ã·ã¹ãã ããã©ãããã©ãŒã ã§å©çšå¯èœã |
Shift_JIS | æ¥æ¬åœå ã§ãã䜿ãããŠããæåã³ãŒããå€ãç°å¢ã§ã®äºææ§ãé«ãã |
EUC-JP | UNIXç³»ã·ã¹ãã ã§å€ãå©çšãããŠããæåã³ãŒãã |
ããã°ã©ã ãåœéåããå Žåã¯ãUTF-8ã®äœ¿çšãæšå¥šãããŸãã
ãã±ãŒã«ã®èšå®
æ¥æ¬èªãæ£ããæ±ãããã«ããã±ãŒã«ïŒå°åèšå®ïŒãæå®ããå¿ èŠããããŸãã以äžã®ã³ãŒãã§ã¯ããã±ãŒã«ãæ¥æ¬èªã«èšå®ããŠããŸãã
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8"); // æ¥æ¬èªãã±ãŒã«ãèšå®
printf("ãã±ãŒã«ãèšå®ãããŸããã
");
return 0;
}
ãã®èšå®ã«ãããæ¥æ¬èªã®æååãæåã³ãŒããæ±ãããããªããŸãã
4.2 ã¯ã€ãæåãšwchar_t
ã®æŽ»çš
Cèšèªã§ã¯ãæ¥æ¬èªãªã©ã®ãã«ããã€ãæåãæ±ãããã«ã¯ã€ãæååãæäŸãããŠããŸããã¯ã€ãæåã¯wchar_t
åã䜿çšããéåžžã®char
åãããå€ãã®ããŒã¿ãæ ŒçŽã§ããŸãã
ã¯ã€ãæåã®å ¥åãšåºå
以äžã¯ãã¯ã€ãæåã䜿çšããå ¥åãšåºåã®äŸã§ãã
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main() {
wchar_t name[50]; // ã¯ã€ãæååé
å
setlocale(LC_ALL, "ja_JP.UTF-8"); // æ¥æ¬èªå¯Ÿå¿ã®ãã±ãŒã«èšå®
wprintf(L"ååãå
¥åããŠãã ãã: ");
fgetws(name, sizeof(name) / sizeof(wchar_t), stdin); // ã¯ã€ãæåã®å
¥å
wprintf(L"å
¥åãããååã¯: %ls
", name); // ã¯ã€ãæåã®åºå
return 0;
}
ã³ãŒãã®ãã€ã³ã
setlocale
é¢æ°ã®äœ¿çšïŒæ¥æ¬èªå ¥åãæ£ããåŠçããããã«ãã±ãŒã«ãèšå®ããŠããŸããwchar_t
åã®å©çšïŒã¯ã€ãæåãæ ŒçŽããããã«äœ¿çšãããŸããwprintf
ãšfgetws
ïŒã¯ã€ãæåå°çšã®å ¥åºåé¢æ°ã䜿çšããããšã§ãæ¥æ¬èªãä»ã®ãã«ããã€ãæåãå®å šã«åŠçã§ããŸãã
4.3 ãã«ããã€ãæåã®åŠç
ãã«ããã€ãæåãšãã€ãæ°ã®èšç®
ãã«ããã€ãæåã¯ã1æåãããè€æ°ãã€ãã䜿çšããããšããããŸãããã®ãããæ£ç¢ºãªæåæ°ããã€ãæ°ãèšç®ããå Žåã«ã¯å°çšã®é¢æ°ãå©çšããŸãã
以äžã¯ããã«ããã€ãæååã®é·ããèšç®ããäŸã§ãã
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8");
char str[] = "ããã«ã¡ã¯"; // ãã«ããã€ãæåå
int length = mbstowcs(NULL, str, 0); // æåæ°ãèšç®
printf("æåæ°: %d
", length);
return 0;
}
ãã®äŸã§ã¯ãmbstowcs
é¢æ°ã䜿çšããŠãã«ããã€ãæååã®é·ããèšç®ããŠããŸãã
4.4 ãã«ããã€ãæåã®ãšã©ãŒãã³ããªã³ã°
äžæ£ãªæåã³ãŒãã®æ€åº
ããã°ã©ã å ã§ãã«ããã€ãæåãåŠçããéã«ã¯ãäžæ£ãªæåã³ãŒããå«ãŸããŠããå Žåã«ãšã©ãŒãæ€åºããå¿ èŠããããŸãã
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8");
char input[100];
wchar_t output[100];
printf("æååãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin); // å
¥åãååŸ
if (mbstowcs(output, input, 100) == (size_t)-1) { // ãšã©ãŒãã§ãã¯
printf("ç¡å¹ãªæåã³ãŒããæ€åºãããŸããã
");
return 1;
}
wprintf(L"å€æçµæ: %ls
", output);
return 0;
}
ãã®ããã°ã©ã ã§ã¯ãmbstowcs
é¢æ°ã䜿ã£ãŠãšã©ãŒãã§ãã¯ãè¡ããç¡å¹ãªæåã³ãŒããæ€åºããŸãã
5. å®è·µäŸïŒç·åçãªå ¥åããã°ã©ã ã®äœæ
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããããŸã§ã«åŠãã ç¥èã掻çšããå®è·µçãªå ¥åããã°ã©ã ãäœæããŸããå ·äœçã«ã¯ãæŽæ°ãæµ®åå°æ°ç¹æ°ãæååã®å ¥åãšæ€èšŒããã¡ã€ã«æäœãæ¥æ¬èªå¯Ÿå¿ã®å ¥ååŠçãçµã¿åãããã³ãŒãäŸã玹ä»ããŸãã
5.1 äŸ1ïŒè€æ°ããŒã¿ã®å ¥åãšæ€èšŒ
ãŸãã¯ãæŽæ°ãšæµ®åå°æ°ç¹æ°ãæååãçµã¿åãããå ¥åããã°ã©ã ãäœæããŸãããã®ããã°ã©ã ã§ã¯ãå ¥åããŒã¿ã®æ€èšŒãè¡ããŸãã
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
int age;
float height;
char name[50];
// ååã®å
¥å
printf("ååãå
¥åããŠãã ãã: ");
fgets(name, sizeof(name), stdin);
name[strcspn(name, "
")] = ' '; // æ¹è¡ãé€å»
// 幎霢ã®å
¥åãšæ€èšŒ
printf("幎霢ãå
¥åããŠãã ãã: ");
while (scanf("%d", &age) != 1 || age < 0) {
printf("ç¡å¹ãªå
¥åã§ããããäžåºŠå
¥åããŠãã ãã: ");
while (getchar() != '
'); // å
¥åãããã¡ãã¯ãªã¢
}
// 身é·ã®å
¥åãšæ€èšŒ
printf("身é·(cm)ãå
¥åããŠãã ãã: ");
while (scanf("%f", &height) != 1 || height < 0) {
printf("ç¡å¹ãªå
¥åã§ããããäžåºŠå
¥åããŠãã ãã: ");
while (getchar() != '
'); // å
¥åãããã¡ãã¯ãªã¢
}
// çµæã®åºå
printf("åå: %s
", name);
printf("幎霢: %dæ³
", age);
printf("身é·: %.2fcm
", height);
return 0;
}
ã³ãŒãã®ãã€ã³ã
- ååã®å
¥åãšæ¹è¡é€å»ïŒ
fgets
ã§å®å šã«æååãååŸããæ¹è¡ãåãé€ããŠããŸãã - æŽæ°ãšæµ®åå°æ°ç¹æ°ã®æ€èšŒïŒå ¥åãšã©ãŒæã«ã¯åå ¥åãä¿ãã«ãŒãåŠçã䜿çšããŠããŸãã
- å ¥åãããã¡ã®ã¯ãªã¢ïŒãšã©ãŒåŠçåŸã®äžèŠãªããŒã¿ãã¯ãªã¢ããããšã§ãããã°ã©ã ã®èª€åäœãé²ããŸãã
5.2 äŸ2ïŒãã¡ã€ã«ããããŒã¿ãèªã¿åãããã°ã©ã
次ã«ããã¡ã€ã«å ¥åã掻çšããŠè€æ°ã®ããŒã¿ãåŠçããããã°ã©ã ã玹ä»ããŸãã
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file;
int id;
char name[50];
float score;
// ãã¡ã€ã«ãéã
file = fopen("data.txt", "r");
if (file == NULL) {
printf("ãã¡ã€ã«ãéããŸããã§ããã
");
return 1;
}
printf("ããŒã¿äžèŠ§:
");
// ãã¡ã€ã«ããããŒã¿ãèªã¿åã
while (fscanf(file, "%d %s %f", &id, name, &score) == 3) {
printf("ID: %d, åå: %s, ç¹æ°: %.2f
", id, name, score);
}
fclose(file); // ãã¡ã€ã«ãéãã
return 0;
}
ã³ãŒãã®ãã€ã³ã
- ãã¡ã€ã«ã®ãªãŒãã³ãšã¯ããŒãºïŒ
fopen
ãšfclose
ã§ãã¡ã€ã«æäœãå®å šã«è¡ããŸãã fscanf
ã«ããããŒã¿ååŸïŒè€æ°ã®ããŒã¿åãæå®ããŠå ¥åãååŸããŸãã- EOFãŸã§ã«ãŒãåŠçïŒãã¡ã€ã«ã®çµç«¯ã«éãããŸã§ããŒã¿ãèªã¿åããŸãã
5.3 äŸ3ïŒæ¥æ¬èªå¯Ÿå¿ã®ããã°ã©ã
æåŸã«ãæ¥æ¬èªå ¥åããµããŒãããããã°ã©ã ãäœæããŸãããã®äŸã§ã¯ããã«ããã€ãæåã䜿çšããŠååãå ¥åãããã¡ã€ã«ã«åºåããŸãã
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main() {
FILE *file;
wchar_t name[50]; // ã¯ã€ãæååé
å
// ãã±ãŒã«èšå®
setlocale(LC_ALL, "ja_JP.UTF-8");
// ååã®å
¥å
wprintf(L"ååãå
¥åããŠãã ãã: ");
fgetws(name, sizeof(name) / sizeof(wchar_t), stdin);
// æ¹è¡æåãé€å»
name[wcslen(name) - 1] = L' ';
// ãã¡ã€ã«ã«ä¿å
file = fopen("output.txt", "w");
if (file == NULL) {
wprintf(L"ãã¡ã€ã«ãéããŸããã§ããã
");
return 1;
}
fwprintf(file, L"åå: %ls
", name); // æ¥æ¬èªããã¡ã€ã«ã«åºå
fclose(file);
wprintf(L"ããŒã¿ãä¿åãããŸããã
");
return 0;
}
ã³ãŒãã®ãã€ã³ã
- ãã±ãŒã«èšå®ïŒæ¥æ¬èªã®æåã³ãŒããé©åã«åŠçããããã®èšå®ã§ãã
- ã¯ã€ãæå察å¿ã®å
¥åºåé¢æ°ïŒ
fgetws
ãšfwprintf
ã䜿çšããããšã§ãæ¥æ¬èªã®å®å šãªåŠçãå®çŸããŠããŸãã - æ¹è¡é€å»ïŒã¯ã€ãæåã§ãæ¹è¡ãåãé€ãåŠçãå ããŠããŸãã
6. ãããããšã©ãŒãšãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCèšèªã§ã®å ¥ååŠçã«ãããŠçºçãããããšã©ãŒãåé¡ç¹ã玹ä»ããããããžã®å ·äœçãªå¯ŸåŠæ³ã解説ããŸãã
6.1 ãããã¡ãªãŒããŒãããŒ
åé¡ã®æŠèŠ
scanf
é¢æ°ãªã©ã䜿çšããéãå
¥åãµã€ãºãæ³å®ãè¶
ãããšãããã¡ãªãŒããŒãããŒãçºçããããã°ã©ã ãäºæããªãåäœãããããšããããŸãã
çºçäŸ
#include <stdio.h>
int main() {
char buffer[10];
printf("ååãå
¥åããŠãã ãã: ");
scanf("%s", buffer); // ãããã¡ãµã€ãºãè¶
ããããŒã¿å
¥å
printf("åå: %s
", buffer);
return 0;
}
ãã®ã³ãŒãã§ã¯ã10æå以äžã®å ¥åãåãåããšãããã¡ãããµããã¡ã¢ãªãç Žå£ãããå¯èœæ§ããããŸãã
解決çïŒfgets
ã®äœ¿çš
å®å
šãªä»£æ¿ãšããŠfgets
é¢æ°ã䜿çšããå
¥åãµã€ãºãå¶éããŸãã
#include <stdio.h>
int main() {
char buffer[10];
printf("ååãå
¥åããŠãã ãã: ");
fgets(buffer, sizeof(buffer), stdin); // ãµã€ãºãå¶éããŠå®å
šã«ååŸ
printf("åå: %s
", buffer);
return 0;
}
ãã®ã³ãŒãã§ã¯ããããã¡ãµã€ãºãå¶éãããªãŒããŒãããŒãé²ããŸãã
6.2 å ¥åãããã¡ã®æ®çããŒã¿
åé¡ã®æŠèŠ
scanf
é¢æ°ã§ã¯ãæ¹è¡æåã空çœããããã¡å
ã«æ®ãå Žåãããã次ã®å
¥ååŠçã§æå³ããªãåäœãåŒãèµ·ãããŸãã
çºçäŸ
#include <stdio.h>
int main() {
int age;
char name[50];
printf("幎霢ãå
¥åããŠãã ãã: ");
scanf("%d", &age); // æ¹è¡æåããããã¡ã«æ®ã
printf("ååãå
¥åããŠãã ãã: ");
fgets(name, sizeof(name), stdin); // æ®ã£ãæ¹è¡æåããã®ãŸãŸèªã¿èŸŒã
printf("åå: %s
", name);
}
ãã®ã³ãŒãã§ã¯ãå¹Žéœ¢å ¥ååŸã®æ¹è¡æåãååå ¥åã«åœ±é¿ããååã®å ¥åãã¹ããããããåé¡ãçºçããŸãã
解決çïŒãããã¡ã¯ãªã¢ã®å®æœ
#include <stdio.h>
int main() {
int age;
char name[50];
printf("幎霢ãå
¥åããŠãã ãã: ");
scanf("%d", &age);
while (getchar() != '
'); // ãããã¡ãã¯ãªã¢
printf("ååãå
¥åããŠãã ãã: ");
fgets(name, sizeof(name), stdin); // å®å
šã«æååãååŸ
printf("åå: %s
", name);
return 0;
}
ãã®ã³ãŒãã§ã¯ãgetchar
ã䜿ã£ãŠäœåãªæåãã¯ãªã¢ãã次ã®å
¥ååŠçãæ£ããè¡ãããããã«ããŠããŸãã
6.3 æ°å€å€æãšã©ãŒ
åé¡ã®æŠèŠ
æååããæ°å€ã«å€æããéãäžæ£ãªæåãå«ãŸããŠãããšãšã©ãŒãçºçããŸãã
çºçäŸ
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[10];
int number;
printf("æ°å€ãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
number = atoi(input); // ç¡å¹ãªæååã§ã0ãè¿ã
printf("å
¥åãããæ°å€: %d
", number);
}
ãã®ã³ãŒãã§ã¯ãç¡å¹ãªæååãå ¥åããŠããšã©ãŒã«ãªããã0ãè¿ãããããããšã©ãŒåŠçãäžååã§ãã
解決çïŒstrtol
é¢æ°ã«ãããšã©ãŒãã§ãã¯
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[10];
char *endptr;
long number;
printf("æ°å€ãå
¥åããŠãã ãã: ");
fgets(input, sizeof(input), stdin);
number = strtol(input, &endptr, 10); // æ°å€å€æ
if (*endptr != ' ' && *endptr != '
') { // å€æãšã©ãŒã®ç¢ºèª
printf("ç¡å¹ãªæ°å€ã§ãã
");
} else {
printf("å
¥åãããå€ã¯ %ld ã§ãã
", number);
}
return 0;
}
ãã®ã³ãŒãã§ã¯ãæååã«ç¡å¹ãªéšåãããã°ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŠå®å šã«åŠçãè¡ããŸãã
6.4 æ¥æ¬èªã®æååã
åé¡ã®æŠèŠ
æ¥æ¬èªãæ±ãéã«æåã³ãŒããæ£ããèšå®ãããŠããªããšãæååããçºçããŸãã
çºçäŸ
#include <stdio.h>
int main() {
char name[50];
printf("ååãå
¥åããŠãã ãã: ");
fgets(name, sizeof(name), stdin);
printf("åå: %s
", name);
}
ãã®ã³ãŒãã¯ãUTF-8ç°å¢ã§å®è¡ãããšæ£ãã衚瀺ãããŸãããShift_JISç°å¢ã§ã¯æååãããå¯èœæ§ããããŸãã
解決çïŒãã±ãŒã«èšå®ãšã¯ã€ãæåã®äœ¿çš
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main() {
wchar_t name[50];
setlocale(LC_ALL, "ja_JP.UTF-8");
wprintf(L"ååãå
¥åããŠãã ãã: ");
fgetws(name, sizeof(name) / sizeof(wchar_t), stdin);
wprintf(L"åå: %ls
", name);
return 0;
}
ãã®ã³ãŒãã§ã¯ããã±ãŒã«èšå®ãšã¯ã€ãæåãçµã¿åãããããšã§æååããé²ããŸãã
7. ãŸãšããšæ¬¡ã®ã¹ããã
ãããŸã§ã®èšäºã§ã¯ãCèšèªã«ãããå ¥ååŠçã«é¢ããåºæ¬ããå¿çšããšã©ãŒãã³ããªã³ã°ãæ¥æ¬èªå¯Ÿå¿ãããã«ã¯ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãŸã§å¹ åºã解説ããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãèšäºã®å 容ãç°¡åã«æ¯ãè¿ãã次ã«åŠã¶ã¹ãã¹ããããææ¡ããŸãã
7.1 èšäºã®èŠç¹ã®æ¯ãè¿ã
1. åºæ¬çãªå ¥ååŠç
- æšæºå
¥åãšæšæºåºåã®ä»çµã¿ãç解ãã
scanf
ãfgets
ã䜿ã£ãããŒã¿ååŸæ¹æ³ãåŠã³ãŸããã - ãšã©ãŒãã³ããªã³ã°ããããã¡ãªãŒããŒãããŒå¯ŸçãéããŠãå®å šãªã³ãŒããæžãããã®åºç€ãç¿åŸããŸããã
2. å¿çšçãªå ¥ååŠç
- ãã¡ã€ã«ããããŒã¿ãèªã¿åãæ¹æ³ãããã©ãŒãããã«åºã¥ããããŒã¿ã®æ€èšŒæè¡ã玹ä»ããŸããã
- æ°å€å€æããšã©ãŒãã³ããªã³ã°ãçµã¿åãããããšã§ãæè»ã§ä¿¡é Œæ§ã®é«ãããã°ã©ã ã®å®è£ æ¹æ³ãç解ããŸããã
3. æ¥æ¬èªãšãã«ããã€ãæåã®å ¥ååŠç
- ãã±ãŒã«èšå®ãã¯ã€ãæåã®äœ¿çšãéããŠãæ¥æ¬èªãå€èšèªå¯Ÿå¿ããã°ã©ã ã®åºæ¬ãåŠã³ãŸããã
- ãã«ããã€ãæåã®åŠçãšãšã©ãŒæ€åºã®éèŠæ§ã確èªããŸããã
4. å®è·µçãªãµã³ãã«ããã°ã©ã
- å®éã®ããã°ã©ã äŸãéããŠãæŽæ°ãæµ®åå°æ°ç¹æ°ãæååããã¡ã€ã«åŠçãæ¥æ¬èªå¯Ÿå¿ãªã©ãçµã¿åãããç·åçãªã³ãŒãã®äœææ¹æ³ã玹ä»ããŸããã
5. ãããããšã©ãŒãšãã©ãã«ã·ã¥ãŒãã£ã³ã°
- ãããã¡ãªãŒããŒãããŒãå ¥åãããã¡ã®æ®çããŒã¿ãæ°å€å€æãšã©ãŒãæ¥æ¬èªæååããªã©ã®ãã©ãã«ãšãã®å¯ŸåŠæ³ã詳ãã解説ããŸããã
7.2 ä»åŸã®åŠç¿ã¹ããã
Cèšèªã®å ¥ååŠçã«ã€ããŠç解ãæ·±ãããšããã§ã次ã®ã¹ããããšããŠä»¥äžã®é ç®ãåŠç¿ããããšãããããããŸãã
- é åãšãã€ã³ã¿ã®æ±ã
- å ¥ååŠçã§ã¯ãé åããã€ã³ã¿ãé »ç¹ã«äœ¿çšããŸããã¡ã¢ãªç®¡çãåçé åã®å©çšã«ã€ããŠåŠã³ãããé«åºŠãªããã°ã©ã ãäœæã§ããããã«ããŸãããã
- æ§é äœãšãã¡ã€ã«åŠçã®å¿çš
- æ§é äœã䜿çšããŠè€éãªããŒã¿ã管çãããã¡ã€ã«ãžã®æžã蟌ã¿ãèªã¿åãåŠçã匷åããŸãã
- é¢æ°ãšã¢ãžã¥ãŒã«å
- ããã°ã©ã ãé¢æ°åäœã§æŽçããã¢ãžã¥ãŒã«åãé²ããããšã§ãåå©çšæ§ãšå¯èªæ§ãåäžãããŸãã
- ãšã©ãŒãã³ããªã³ã°ãšäŸå€åŠç
- ããé«åºŠãªãšã©ãŒãã³ããªã³ã°ããã°æ©èœãè¿œå ããå ç¢ãªããã°ã©ã ãäœæããŸãã
- ãã«ãã¹ã¬ããããã°ã©ãã³ã°
- å ¥ååŠçãè€æ°ã¹ã¬ããã§åæã«åŠçããæè¡ãåŠã¶ããšã§ãé«éã§å¹ççãªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
- ä»èšèªãšã®é£æºãšãããã¯ãŒã¯ããã°ã©ãã³ã°
- Cèšèªã䜿ã£ããããã¯ãŒã¯ããã°ã©ãã³ã°ããPythonãJavaScriptãªã©ä»èšèªãšã®é£æºãèŠéã«å ¥ããå®è·µçãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸãã
7.3 èªè ãžã®ã¢ããã€ã¹
1. ã³ãŒããå®éã«åãããŠã¿ã
- çè«ã ãã§ãªãã玹ä»ãããµã³ãã«ã³ãŒããèªåã§æžããå®è¡ããŠåäœã確èªããŸãããããšã©ãŒãäœéšããããšã§ç解ãæ·±ãŸããŸãã
2. ãªãã¡ã¬ã³ã¹ãç©æ¥µçã«å©çšãã
- æšæºã©ã€ãã©ãªãCèšèªã®ãªãã¡ã¬ã³ã¹ã掻çšããäžæç¹ãããã°ããã«èª¿ã¹ãç¿æ £ãã€ããŸãããã
3. å°ããªããã°ã©ã ãã倧ããªããã°ã©ã ãž
- å°èŠæš¡ãªããã°ã©ã ããå§ããåŸã ã«è€éãªããã°ã©ã ãäœæããããšã§ã段éçã«ã¹ãã«ãé«ããŠãããŸãã
4. ãšã©ãŒã¡ãã»ãŒãžãæããªã
- ãšã©ãŒã¯ããã°ã©ã ãæé·ããããã³ãã§ãããšã©ãŒã¡ãã»ãŒãžãåæããåé¡è§£æ±ºã®åãé€ããŸãããã
7.4 çµããã«
ãã®èšäºã§ã¯ãCèšèªã®å ¥ååŠçãäžå¿ã«è§£èª¬ããå®å šã§å®çšçãªããã°ã©ã ãäœæããããã®åºç€ãšå¿çšãã¯ããã¯ãåŠã³ãŸããã
Cèšèªã¯ã·ã³ãã«ã§ãããªãã匷åãªèšèªã§ããããã®ç解ãæ·±ããããšã§å€ãã®å¿çšããã°ã©ã ãäœæã§ããããã«ãªããŸãã
ä»åŸã¯ããã®èšäºã§çŽ¹ä»ããå 容ãèžãŸããŠããã«å®è·µçãªããã°ã©ã äœæã«ææŠããCèšèªã®å¯èœæ§ãåºããŠãããŸãããã