- 1 1. fprintfé¢æ°ãšã¯
- 2 2. fprintfã®åºæ¬çãªäœ¿ãæ¹
- 3 3. fprintfã§ã®æžåŒæå®ã®æŽ»çš
- 4 4. ãã¡ã€ã«æäœãšfprintf
- 5 5. ãšã©ãŒãã³ããªã³ã°
- 6 6. å¿çšäŸ
- 7 7. ãããã質åïŒFAQïŒ
- 7.1 1. fprintfãšprintfã®éãã¯äœã§ããïŒ
- 7.2 2. fprintfã§æ¥æ¬èªãæ£ããåºåããã«ã¯ïŒ
- 7.3 3. fprintfã§ãšã©ãŒãçºçããäž»ãªåå ã¯ïŒ
- 7.4 4. fprintfã§ã®ãããã¡ãªã³ã°ã®åœ±é¿ã¯ïŒ
- 7.5 5. ãã¡ã€ã«åºåãéäžã§éåããå Žåã®å¯ŸåŠæ³ã¯ïŒ
- 7.6 ãŸãšã
- 8 8. è€æ°ãã¡ã€ã«ã®åæåºå
- 9 9. åèãªã³ã¯
1. fprintfé¢æ°ãšã¯
fprintfã®åºæ¬æŠèŠ
fprintf
é¢æ°ã¯ãCèšèªã§äœ¿çšãããæšæºçãªå
¥åºåé¢æ°ã®äžã€ã§ãããã®é¢æ°ã®äž»ãªåœ¹å²ã¯ãããã©ãŒãããä»ãã§æååãåºåãããããšã§ããfprintf
ã䜿çšããããšã§ãæå®ãããã©ãŒãããã«åŸããããŒã¿ãæŽåœ¢ããŠåºåå
ã«æžã蟌ãããšãå¯èœã§ãã
äžè¬çã«ãfprintf
ã¯ä»¥äžã®ãããªå Žé¢ã§æŽ»çšãããŸãã
- ãã°ãã¡ã€ã«ã®äœæ: ããã°ã©ã ã®å®è¡å±¥æŽããšã©ãŒæ å ±ãèšé²ããã
- ãã©ãŒãããä»ãããŒã¿ã®ä¿å: æ°å€ãæååãã決ãŸã£ã圢åŒã§ãã¡ã€ã«ã«ä¿åããã
- ãããã°æ å ±ã®åºå: éçºäžã®ããã°ã©ã ã®åäœã確èªããããã®ããŒã¿åºåã
fprintfã®åºæ¬æ§æ
int fprintf(FILE *stream, const char *format, ...);
æ§æã®åéšå
FILE *stream
: æžã蟌ã¿å ãæå®ããŸããäŸãã°ãæšæºåºåïŒstdout
ïŒããã¡ã€ã«ïŒfopen
ã§éãããã¡ã€ã«ïŒã§ããconst char *format
: åºåãã©ãŒããããæå®ããæååã§ããããã¯printf
é¢æ°ãšåã圢åŒã§èšè¿°ããŸãã...
: å¯å€é·åŒæ°ã䜿ã£ãŠãåºåããããŒã¿ãæå®ããŸãã
æ»ãå€ã¯ãæ£åžžã«æžã蟌ãŸããæåæ°ïŒæ£ã®æŽæ°ïŒã§ãããšã©ãŒãçºçããå Žåã¯-1
ãè¿ããŸãã
ä»ã®é¢æ°ãšã®æ¯èŒ
fprintf
ãšé¡äŒŒããé¢æ°ãšããŠãprintf
ãsprintf
ããããŸããããããã®éãã以äžã«ãŸãšããŸãã
printfãšã®éã
printf
ã¯æšæºåºåïŒéåžžã¯ã³ã³ãœãŒã«ïŒã«ããŒã¿ãåºåããããã«äœ¿ãããŸããäžæ¹ã§ãfprintf
ã¯åºåå
ãæå®ããããšãã§ããæè»æ§ããããŸãã
äŸ: printfã®äœ¿çš
printf("Hello, World!\n");
ããã¯åžžã«ã³ã³ãœãŒã«ã«åºåãããŸãã
äŸ: fprintfã®äœ¿çš
FILE *file = fopen("output.txt", "w");
fprintf(file, "Hello, World!\n");
fclose(file);
ãã®å Žåãåºåã¯æå®ãããã¡ã€ã«ïŒoutput.txt
ïŒã«æžã蟌ãŸããŸãã
sprintfãšã®éã
sprintf
ã¯ãåºåå
ããæååãã§ããç¹ãç°ãªããŸããã€ãŸããæžã蟌ã¿å
ãã¡ã¢ãªå
ã®ãããã¡ã«ãªããŸãã
äŸ: sprintfã®äœ¿çš
char buffer[50];
sprintf(buffer, "The result is %d", 42);
ãã®å Žåãæåå"The result is 42"
ãbuffer
ã«æžã蟌ãŸããŸãã
ãŸãšã
fprintf
ã¯ããã¡ã€ã«ãæšæºåºåãªã©ãæè»ã«åºåå ãæå®ã§ãã䟿å©ãªé¢æ°ã§ãã- ä»ã®åºåé¢æ°ïŒ
printf
ãsprintf
ïŒãšäœ¿ãåããããšã§ãããã°ã©ã ã®å¹çãå¯èªæ§ãé«ããããšãå¯èœã§ãã
2. fprintfã®åºæ¬çãªäœ¿ãæ¹
ã·ã³ã¿ãã¯ã¹ãšåºæ¬çãªåŒæ°ã®èª¬æ
fprintf
é¢æ°ã¯ãããŒã¿ããã©ãŒãããä»ãã§åºåããããã®æè»ãªããŒã«ã§ãããã®åºæ¬æ§æã¯ä»¥äžã®éãã§ãã
int fprintf(FILE *stream, const char *format, ...);
以äžã«ãåŒæ°ã®è©³çŽ°ã説æããŸãã
- FILE *stream
- æžã蟌ã¿å ãæå®ããŸãã
- äžè¬çãªéžæè¢:
- æšæºåºåïŒ
stdout
ïŒ - æšæºãšã©ãŒåºåïŒ
stderr
ïŒ - ãã¡ã€ã«ïŒ
fopen
é¢æ°ã§éãããã¡ã€ã«ïŒ
- æšæºåºåïŒ
- const char *format
- åºåãã©ãŒããããå®çŸ©ããŸãã
- ãã©ãŒãããæå®åã䜿ã£ãŠãæååãæŽæ°ãæµ®åå°æ°ç¹æ°ãªã©ã®åœ¢åŒãæå®ã§ããŸãïŒäŸ:
%s
,%d
,%f
ïŒã
- å¯å€é·åŒæ°ïŒâŠïŒ
- ãã©ãŒãããæå®åã«å¯Ÿå¿ããããŒã¿ãæäŸããŸãã
- äŸ: ãã©ãŒãããã
"Name: %s, Age: %d"
ã®å Žåã察å¿ããããŒã¿ãšããŠååãšå¹Žéœ¢ãæž¡ããŸãã
æ»ãå€ãšããŠãæ£åžžã«æžã蟌ãŸããæåæ°ïŒæ£ã®æŽæ°ïŒãè¿ãããŸãããšã©ãŒãçºçããå Žåã¯-1
ãè¿ããŸãã
åºæ¬çãªã³ãŒãäŸ
以äžã¯ãfprintf
ã䜿çšããç°¡åãªäŸã瀺ããŸãã
æšæºåºåãžã®åºå
æšæºåºåïŒstdout
ïŒã«æååããã©ãŒãããä»ãã§åºåããŸãã
#include <stdio.h>
int main() {
fprintf(stdout, "Hello, %s! You have %d new messages.\n", "Alice", 5);
return 0;
}
åºåçµæ:
Hello, Alice! You have 5 new messages.
ãã®äŸã§ã¯ãæšæºåºåãšããŠstdout
ãæ瀺çã«æå®ããŠããŸãã
ãã¡ã€ã«ãžã®åºå
ãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãéã«fprintf
ã䜿çšããŸãã
#include <stdio.h>
int main() {
FILE *file = fopen("output.txt", "w"); // ãã¡ã€ã«ããæžã蟌ã¿ã¢ãŒããã§éã
if (file == NULL) {
fprintf(stderr, "Error opening file.\n");
return 1;
}
fprintf(file, "Name: %s, Age: %d\n", "Bob", 30);
fclose(file); // ãã¡ã€ã«ãéãã
return 0;
}
output.txt ã®å 容:
Name: Bob, Age: 30
æžåŒæå®åã®åºç€
fprintf
ã§ã¯ããã©ãŒãããæå®åã䜿çšããŠãåºåã®åœ¢åŒãæè»ã«ã³ã³ãããŒã«ã§ããŸãã以äžã¯åºæ¬çãªæå®åã®äŸã§ãã
æå®å | 説æ | äŸ |
---|---|---|
%d | 10é²æ°ã®æŽæ° | 42 |
%f | æµ®åå°æ°ç¹æ° | 3.141593 |
%s | æåå | "Hello" |
%c | åäžã®æå | 'A' |
%x | 16é²æ°ïŒå°æåïŒ | 0x2a |
%o | 8é²æ° | 052 |
äŸ:
fprintf(stdout, "Integer: %d, Float: %.2f, String: %s\n", 10, 3.14, "Test");
åºåçµæ:
Integer: 10, Float: 3.14, String: Test
3. fprintfã§ã®æžåŒæå®ã®æŽ»çš
å¹ ïŒMinimum WidthïŒ
å¹ ãæå®ãããšãåºåæåæ°ãæå®ããå¹ ã«æºããªãå Žåã«ã¹ããŒã¹ã§åããããŸãã
äŸ:
fprintf(stdout, "|%10s|\n", "Hello");
fprintf(stdout, "|%10d|\n", 123);
åºåçµæ:
| Hello|
| 123|
ããã§ã¯ãå¹ ã10ã«æå®ããŠããŸããæåæ°ã足ããªãå Žåãå·ŠåŽã«ã¹ããŒã¹ãæ¿å ¥ãããŸãã
粟床ïŒPrecisionïŒ
粟床ã¯ã以äžã®çšéã«å¿ããŠç°ãªãæå³ãæã¡ãŸãã
- æååïŒ%sïŒ: åºåããæ倧æåæ°ã
- æµ®åå°æ°ç¹æ°ïŒ%f, %e, %gïŒ: å°æ°ç¹ä»¥äžã®æ¡æ°ã
äŸ:
fprintf(stdout, "%.3f\n", 3.141592); // æµ®åå°æ°ç¹æ°ã®ç²ŸåºŠ
fprintf(stdout, "%.5s\n", "Hello, World!"); // æååã®æ倧é·
åºåçµæ:
3.142
Hello
ãã©ã°
ãã©ã°ã䜿ããšãåºåã®é 眮ã圢åŒãå¶åŸ¡ã§ããŸãã
ãã©ã° | 説æ | äŸ |
---|---|---|
- | å·ŠæãïŒããã©ã«ãã¯å³æãïŒ | |%-10s| â |Hello | |
+ | æ°å€ã®ç¬Šå·ãåžžã«è¡šç€ºïŒæ£æ°ã§ã+ ãè¡šç€ºïŒ | %+d â +42 |
0 | ãŒãåãïŒå¹ æå®æã«æå¹ïŒ | %05d â 00042 |
# | ç¹å®ã®åã§åœ¢åŒæå®ïŒ16é²æ°ã8é²æ°ïŒ | %#x â 0x2a |
æ£ã®æ°å€ã®å é ã«ã¹ããŒã¹ãæ¿å ¥ | % d â 42 |
äŸ:
fprintf(stdout, "|%-10s|%+05d|%#x|\n", "Left", 42, 42);
åºåçµæ:
|Left |+0042|0x2a|
å®è·µçãªå¿çšäŸ
fprintf
ã®å¹
ã粟床ããã©ã°ãçµã¿åãããããšã§ããã©ãŒãããããã衚圢åŒã®ããŒã¿ãäœæããããšãã§ããŸãã
衚圢åŒã®ããŒã¿åºå
以äžã¯ãåŠçã®æ瞟ããã©ãŒãããä»ãã§åºåããäŸã§ãã
#include <stdio.h>
int main() {
fprintf(stdout, "|%-10s|%5s|%5s|%5s|\n", "Name", "Math", "Eng", "Sci");
fprintf(stdout, "|%-10s|%5d|%5d|%5d|\n", "Alice", 95, 88, 92);
fprintf(stdout, "|%-10s|%5d|%5d|%5d|\n", "Bob", 82, 79, 85);
return 0;
}
åºåçµæ:
|Name | Math| Eng| Sci|
|Alice | 95| 88| 92|
|Bob | 82| 79| 85|
æ°å€ããŒã¿ã®æŽåœ¢
ç¹å®ã®æ°å€ããã©ãŒãããä»ãã§åºåããçµ±äžãããèŠãç®ã«ããŸãã
äŸ:
fprintf(stdout, "Price: $%8.2f\n", 1234.5);
fprintf(stdout, "Discount: %06d%%\n", 25);
åºåçµæ:
Price: $ 1234.50
Discount: 000025%
泚æç¹
- äžæ£ãªãã©ãŒãããæå®å
- ãã©ãŒãããæå®åãšããŒã¿åãäžèŽããªãå Žåãäºæããªãåºåããšã©ãŒãçºçããŸãã
- äŸ:
%d
ã«æååãæž¡ããšæªå®çŸ©åäœã«ãªãå¯èœæ§ããããŸãã
- å¹ ã粟床ã®æå®
- éå°ã«å€§ããå¹ ãæå®ãããšãåºåãåé·ã«ãªãããªãœãŒã¹ãç¡é§ã«ããå ŽåããããŸãã
ãŸãšã
- å¹
ã粟床ããã©ã°ã掻çšããããšã§ã
fprintf
ã®åºåã现ããå¶åŸ¡å¯èœã§ãã - 衚圢åŒããŒã¿ãæ°å€æŽåœ¢ãå¹æçã«è¡ãããšã§ãããã°ã©ã ã®åºåãèŠãããã§ããŸãã
- ãã©ãŒãããæå®åãšæž¡ãããŒã¿åã®äžèŽã«æ³šæããããšã§ãå®å šãªåºåãå®çŸããŸãã
4. ãã¡ã€ã«æäœãšfprintf
ãã¡ã€ã«ãéãæ¹æ³ïŒfopenïŒ
fprintf
ã䜿çšããŠãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãããã«ã¯ããŸããã¡ã€ã«ãéãå¿
èŠããããŸããCèšèªã§ã¯ãfopen
é¢æ°ã䜿ã£ãŠãã¡ã€ã«ãéããŸãã
fopenã®åºæ¬æ§æ
FILE *fopen(const char *filename, const char *mode);
åŒæ°ã®èª¬æ
filename
: éããããã¡ã€ã«ã®ååïŒãã¹ïŒãmode
: ãã¡ã€ã«ãéãã¢ãŒããæå®ããæååã"r"
: èªã¿èŸŒã¿å°çš"w"
: æžã蟌ã¿å°çšïŒæ¢åãã¡ã€ã«ã¯äžæžãïŒ"a"
: è¿œèšå°çšïŒãã¡ã€ã«ã®æ«å°Ÿã«è¿œå ïŒ"rb"
/"wb"
/"ab"
: ãã€ããªã¢ãŒãã§ã®æäœïŒr
/w
/a
ãšçµã¿åããïŒ
æ»ãå€
- ãã¡ã€ã«ãæ£åžžã«éããå Žåã
FILE
åãã€ã³ã¿ãè¿ããŸãã - 倱æããå Žåã
NULL
ãè¿ããŸãã
fopenã®äœ¿çšäŸ
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
fprintf(file, "Hello, World!\n");
fclose(file);
return 0;
}
ãã®ããã°ã©ã ã¯ãexample.txt
ãšãããã¡ã€ã«ãéããå
容ãæžã蟌ãã§ããéããŸãã
fprintfã䜿ã£ããã¡ã€ã«æžã蟌ã¿
fprintf
ã䜿çšããããšã§ãéãããã¡ã€ã«ã«ãã©ãŒãããä»ãã§ããŒã¿ãæžã蟌ãããšãã§ããŸãã以äžã«ãããã€ãã®ã·ããªãªã§ã®äœ¿çšäŸã瀺ããŸãã
åºæ¬çãªãã¡ã€ã«æžã蟌ã¿
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
fprintf(file, "Name: %s, Age: %d\n", "Alice", 25);
fprintf(file, "Name: %s, Age: %d\n", "Bob", 30);
fclose(file);
return 0;
}
data.txt ã®å 容:
Name: Alice, Age: 25
Name: Bob, Age: 30
CSVãã¡ã€ã«ã®äœæ
CSVïŒComma-Separated ValuesïŒåœ¢åŒã®ããŒã¿ãæžã蟌ãäŸã§ãã
#include <stdio.h>
int main() {
FILE *file = fopen("students.csv", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
// ããããŒè¡
fprintf(file, "Name,Math,English,Science\n");
// ããŒã¿è¡
fprintf(file, "Alice,95,88,92\n");
fprintf(file, "Bob,82,79,85\n");
fclose(file);
return 0;
}
students.csv ã®å 容:
Name,Math,English,Science
Alice,95,88,92
Bob,82,79,85
ãã¡ã€ã«ãéããïŒfcloseïŒ
ãã¡ã€ã«æäœãçµãã£ãããfclose
é¢æ°ã䜿çšããŠãã¡ã€ã«ãéããå¿
èŠããããŸãããããè¡ããªããšã以äžã®åé¡ãçºçããå¯èœæ§ããããŸãã
- ãã¡ã€ã«ãžã®ããŒã¿æžã蟌ã¿ãå®å šã«è¡ãããªãã
- ã·ã¹ãã ãªãœãŒã¹ãç¡é§ã«æ¶è²»ãããã
fcloseã®åºæ¬æ§æ
int fclose(FILE *stream);
æ»ãå€
- æåããå Žåã¯
0
ã - 倱æããå Žåã¯EOFïŒãšã³ãã»ãªãã»ãã¡ã€ã«ïŒãè¿ããŸãã
fcloseã®äŸ
FILE *file = fopen("example.txt", "w");
if (file != NULL) {
fprintf(file, "This is a test.\n");
fclose(file);
}
å®å šãªãã¡ã€ã«æäœã®ãã³ã
- ãã¡ã€ã«ãã€ã³ã¿ã®ç¢ºèª
fopen
ã®æ»ãå€ãNULL
ãã©ãããåžžã«ç¢ºèªããã
- ãã¡ã€ã«éãå¿ãé²æ¢
- ãã¡ã€ã«ãéãããå¿
ã
fclose
ãåŒã³åºãã
- ãšã©ãŒãã³ããªã³ã°
- ãã¡ã€ã«æäœäžã®ãšã©ãŒãæ€åºããŠåŠçããã
- äŸ: ãã£ã¹ã¯å®¹éäžè¶³ããã¡ã€ã«æš©éãšã©ãŒã
ãŸãšã
fprintf
ã䜿ãéã«ã¯ããŸããã¡ã€ã«ãfopen
ã§éããåŠççµäºåŸã«fclose
ã§éããããšãéèŠã§ãã- ãã¡ã€ã«æäœã®ã¢ãŒãããšã©ãŒãã³ããªã³ã°ãé©åã«è¡ãããšã§ãå®å šãã€å¹ççãªãã¡ã€ã«æäœãå¯èœã«ãªããŸãã
- å¿çšãšããŠãCSV圢åŒã®ããŒã¿ä¿åããã°èšé²ã«å©çšããããšãã§ããŸãã
5. ãšã©ãŒãã³ããªã³ã°
fprintfã®æ»ãå€ã䜿ã£ããšã©ãŒåŠç
fprintf
ã®æ»ãå€ã確èªããããšã§ãæžã蟌ã¿æäœãæåãããã©ãããå€æã§ããŸãã
æ»ãå€ã®ä»æ§
- æ£åžžã«æžã蟌ãŸããå ŽåïŒæžã蟌ãŸããæåæ°ïŒæ£ã®æŽæ°ïŒãè¿ãã
- ãšã©ãŒãçºçããå ŽåïŒ
-1
ãè¿ãã
åºæ¬çãªãšã©ãŒãã§ãã¯äŸ
#include <stdio.h>
int main() {
FILE *file = fopen("output.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
int result = fprintf(file, "Hello, World!\n");
if (result < 0) {
fprintf(stderr, "Error: Failed to write to file.\n");
}
fclose(file);
return 0;
}
ãã®ããã°ã©ã ã§ã¯ãfprintf
ã®æ»ãå€ã確èªããæžã蟌ã¿ã«å€±æããå Žåã«ãšã©ãŒã¡ãã»ãŒãžãåºåããŠããŸãã
æšæºãšã©ãŒåºåïŒstderrïŒã掻çš
stderr
ã¯ãããã°ã©ã ããšã©ãŒãèŠåãå ±åããããã«äœ¿çšããæšæºçãªåºåã¹ããªãŒã ã§ããstderr
ã«ãšã©ãŒã¡ãã»ãŒãžãåºåããããšã§ããŠãŒã¶ãŒãéçºè
ã«åé¡ãæ確ã«äŒããããšãã§ããŸãã
äŸ: stderrã䜿ã£ããšã©ãŒåºå
#include <stdio.h>
int main() {
FILE *file = fopen("nonexistent_directory/output.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Unable to open file. Check the directory path.\n");
return 1;
}
fclose(file);
return 0;
}
åºåçµæïŒãšã©ãŒæïŒ:
Error: Unable to open file. Check the directory path.
stderr
ã䜿çšããããšã§ããšã©ãŒåºåãéåžžã®æšæºåºåïŒstdout
ïŒãšåé¢ããããšãå¯èœã§ãã
å®è·µçãªãšã©ãŒåŠçã³ãŒã
以äžã¯ããã¡ã€ã«æäœã«ãããå žåçãªãšã©ãŒãåŠçããå®è·µçãªäŸã§ãã
äŸ: æžã蟌ã¿ãšãã¡ã€ã«ã¯ããŒãºã®ãšã©ãŒåŠç
#include <stdio.h>
int main() {
FILE *file = fopen("output.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
// æžã蟌ã¿åŠç
if (fprintf(file, "Logging data: %d\n", 42) < 0) {
fprintf(stderr, "Error: Failed to write to file.\n");
fclose(file);
return 1;
}
// ãã¡ã€ã«ã¯ããŒãºæã®ãšã©ãŒç¢ºèª
if (fclose(file) != 0) {
fprintf(stderr, "Error: Failed to close the file.\n");
return 1;
}
printf("File operation completed successfully.\n");
return 0;
}
ãã€ã³ã:
- ãã¡ã€ã«ãªãŒãã³ãæžã蟌ã¿ãã¯ããŒãºã®åã¹ãããã§ãšã©ãŒã確èªããŠããŸãã
- ãšã©ãŒæã«ã¯é©åãªã¡ãã»ãŒãžãåºåããããã°ã©ã ãçµäºããŸãã
ãããããšã©ãŒãšå¯ŸåŠæ³
1. ãã¡ã€ã«ãéããªã
åå :
- ãã¡ã€ã«ãååšããªãã
- ãã£ã¬ã¯ããªãééã£ãŠããã
- ã¢ã¯ã»ã¹æš©éãäžè¶³ããŠããã
察åŠæ³:
- ãã¡ã€ã«ãã¹ã確èªããã
- ã¢ã¯ã»ã¹æš©éãä¿®æ£ããã
fopen
ã®æ»ãå€ã確èªããã
2. æžã蟌ã¿ã倱æãã
åå :
- ãã£ã¹ã¯å®¹éäžè¶³ã
- ãã¡ã€ã«ãèªã¿åãå°çšãšããŠéãããŠããã
察åŠæ³:
- ãã¡ã€ã«ã®ã¢ãŒãã確èªããïŒ
"w"
ã"a"
ã䜿çšïŒã - ãã£ã¹ã¯å®¹éããã§ãã¯ããã
3. ãã¡ã€ã«ã¯ããŒãºæã®ãšã©ãŒ
åå :
- ã·ã¹ãã ãªãœãŒã¹ãäžè¶³ããŠããã
- ããŒããŠã§ã¢ã®äžå ·åã
察åŠæ³:
- ã¯ããŒãºæã«ãšã©ãŒã確èªããã
- ãã¡ã€ã«ãéãéãå¿ èŠæå°éã®ãªãœãŒã¹ã䜿çšããã
ãŸãšã
fprintf
ã®æ»ãå€ã確èªããããšã§ãæžã蟌ã¿ãšã©ãŒãæ€åºã§ããŸãã- æšæºãšã©ãŒåºåïŒ
stderr
ïŒã䜿çšããããšã§ããšã©ãŒã¡ãã»ãŒãžãé©åã«å ±åå¯èœã§ãã - ãã¡ã€ã«æäœå šè¬ã§ã®ãšã©ãŒåŠçãé©åã«å®è£ ããããšã§ãããã°ã©ã ã®ä¿¡é Œæ§ãåäžããŸãã
6. å¿çšäŸ
ãã°ãã¡ã€ã«ã®èªåçæ
ãã°ãã¡ã€ã«ã¯ãããã°ã©ã ã®åäœç¶æ³ããšã©ãŒæ å ±ãèšé²ããããã«äœ¿çšãããŸãã以äžã¯ãæ¥æãå«ããã°ãèšé²ããäŸã§ãã
äŸ: æ¥æä»ããã°ã®åºå
#include <stdio.h>
#include <time.h>
int main() {
FILE *logFile = fopen("log.txt", "a"); // è¿œèšã¢ãŒãã§éã
if (logFile == NULL) {
fprintf(stderr, "Error: Could not open log file.\n");
return 1;
}
time_t now = time(NULL);
struct tm *localTime = localtime(&now);
fprintf(logFile, "[%04d-%02d-%02d %02d:%02d:%02d] Program started\n",
localTime->tm_year + 1900, localTime->tm_mon + 1, localTime->tm_mday,
localTime->tm_hour, localTime->tm_min, localTime->tm_sec);
fclose(logFile);
return 0;
}
ãã°ãã¡ã€ã«ã®å 容:
[2025-01-19 15:45:30] Program started
ãã€ã³ã
time.h
ãå©çšããŠçŸåšã®æ¥æãååŸããŠããŸãã- è¿œèšã¢ãŒãïŒ
"a"
ïŒã䜿çšããŠããã°ããã¡ã€ã«ã®æ«å°Ÿã«è¿œå ããŸãã
ããŒãã«åœ¢åŒããŒã¿ã®æžã蟌ã¿
ããŒã¿ã衚圢åŒã§æŽç¶ãšåºåããäŸã瀺ããŸããããã¯ãçµæã¬ããŒããããŒã¿ããŒã¹æ å ±ããšã¯ã¹ããŒãããå Žåã«åœ¹ç«ã¡ãŸãã
äŸ: åŠçã®æ瞟衚ãåºå
#include <stdio.h>
int main() {
FILE *file = fopen("report.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
fprintf(file, "|%-10s|%6s|%6s|%6s|\n", "Name", "Math", "Eng", "Sci");
fprintf(file, "|%-10s|%6d|%6d|%6d|\n", "Alice", 90, 85, 88);
fprintf(file, "|%-10s|%6d|%6d|%6d|\n", "Bob", 78, 82, 80);
fclose(file);
return 0;
}
report.txtã®å 容:
|Name | Math| Eng| Sci|
|Alice | 90| 85| 88|
|Bob | 78| 82| 80|
ãã€ã³ã
- å·ŠæãïŒ
%-10s
ïŒãå³æãïŒ%6d
ïŒã䜿çšããŠãèŠããã圢åŒãå®çŸããŠããŸãã
CSVãã¡ã€ã«ãžã®ããŒã¿ä¿å
CSVïŒComma-Separated ValuesïŒã¯ãããŒã¿ã®ä¿åãä»ã®ããã°ã©ã ãšã®ããŒã¿äº€æã«äŸ¿å©ã§ãã
äŸ: ããŒã¿ãCSV圢åŒã§ä¿å
#include <stdio.h>
int main() {
FILE *file = fopen("data.csv", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
// ããããŒè¡ãèšé²
fprintf(file, "Name,Math,English,Science\n");
// ããŒã¿è¡ãèšé²
fprintf(file, "Alice,90,85,88\n");
fprintf(file, "Bob,78,82,80\n");
fclose(file);
return 0;
}
data.csv ã®å 容:
Name,Math,English,Science
Alice,90,85,88
Bob,78,82,80
ãã€ã³ã
- åãã£ãŒã«ããã³ã³ãïŒ
,
ïŒã§åºåãããšã§ãä»ã®ããŒã«ïŒExcelãPythonïŒã§èªã¿åãå¯èœãªåœ¢åŒãäœæããŸãã
ãããã°æ å ±ã®èšé²
ãããã°çšã®ãã°ãèšé²ããããšã§ãããã°ã©ã ã®ç¶æ ã远跡ãããããªããŸãã
äŸ: å®è¡æå€æ°ã®èšé²
#include <stdio.h>
int main() {
FILE *debugFile = fopen("debug.log", "w");
if (debugFile == NULL) {
fprintf(stderr, "Error: Could not open debug log file.\n");
return 1;
}
int x = 42;
fprintf(debugFile, "Debug: Variable x = %d\n", x);
fclose(debugFile);
return 0;
}
debug.log ã®å 容:
Debug: Variable x = 42
ãã€ã³ã
- ãããã°æ å ±ããã¡ã€ã«ã«èšé²ããããšã§ãè€éãªããã°ã©ã ã®åé¡ãç¹å®ãããããªããŸãã
ãŸãšã
fprintf
ã䜿çšããããšã§ããã°ãã¡ã€ã«ã衚圢åŒã®ããŒã¿ãCSVãã¡ã€ã«ãªã©ãå€æ§ãªããŒã¿ä¿å圢åŒãå®çŸã§ããŸãã- å®åã§ã¯ãæ¥æä»ãã®ãã°ãCSV圢åŒãç¹ã«åœ¹ç«ã¡ãŸãã
- å¿çšäŸãéããŠãããå¹æçã«
fprintf
ã掻çšã§ããããã«ãªããŸãã

7. ãããã質åïŒFAQïŒ
1. fprintfãšprintfã®éãã¯äœã§ããïŒ
åç
printf
:- æšæºåºåïŒéåžžã¯ã³ã³ãœãŒã«ïŒã«ããŒã¿ãåºåããŸãã
- åºåå ãå€æŽããããšã¯ã§ããŸããã
fprintf
:- åºåå ãèªç±ã«æå®ã§ããŸãïŒäŸ: ãã¡ã€ã«ãæšæºåºåãæšæºãšã©ãŒåºåãªã©ïŒã
- ããæè»ãªããŒã¿åºåãå¯èœã§ãã
äŸ
#include <stdio.h>
int main() {
printf("This is printed to the console.\n"); // åžžã«æšæºåºå
FILE *file = fopen("output.txt", "w");
if (file != NULL) {
fprintf(file, "This is written to a file.\n"); // ãã¡ã€ã«ã«åºå
fclose(file);
}
return 0;
}
2. fprintfã§æ¥æ¬èªãæ£ããåºåããã«ã¯ïŒ
åç
- æ¥æ¬èªãæ£ããåºåããããã«ã¯ã以äžã®ç¹ã確èªããå¿ èŠããããŸãã
- æåã³ãŒã:
- 䜿çšããç°å¢ã«å¿ããŠãé©åãªæåã³ãŒãïŒäŸ: UTF-8, Shift-JISïŒãèšå®ããã
- ãã¡ã€ã«ã®ãšã³ã³ãŒãã£ã³ã°:
- æžã蟌ããã¡ã€ã«ã®ãšã³ã³ãŒãã£ã³ã°ãæåã³ãŒãã«åãããã
äŸ: UTF-8ã§æ¥æ¬èªãåºå
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, ""); // ãã±ãŒã«ãèšå®
FILE *file = fopen("japanese.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
fprintf(file, "ããã«ã¡ã¯ãäžçïŒ\n");
fclose(file);
return 0;
}
泚æ:
- ç°å¢ã«ãã£ãŠã¯ãæååããé²ãããã«ãšã³ã³ãŒãã£ã³ã°ãæ瀺çã«èšå®ããå¿ èŠããããŸãïŒäŸ: Windowsã§Shift-JISã䜿çšïŒã
3. fprintfã§ãšã©ãŒãçºçããäž»ãªåå ã¯ïŒ
åç
- äž»ãªãšã©ãŒåå ã«ã¯ä»¥äžãæããããŸãã
- ãã¡ã€ã«ãéããªã:
- ãã¡ã€ã«ãã¹ãééã£ãŠããã
- ã¢ã¯ã»ã¹æš©éãäžè¶³ããŠããã
- ãã£ã¹ã¯å®¹éäžè¶³:
- æžã蟌ã¿äžã«ç©ºã容éã足ããªããªãã
- ãã©ãŒãããæå®åã®äžäžèŽ:
- ããŒã¿åãšãã©ãŒãããæå®åãäžèŽããŠããªãã
äŸ: ãã©ãŒãããæå®åã®äžäžèŽ
#include <stdio.h>
int main() {
FILE *file = fopen("error.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
// ãã©ãŒãããæå®åã«æååãæåŸ
ããŠããããæŽæ°ãæž¡ããŠãã
fprintf(file, "%s", 42); // ãšã©ãŒçºç
fclose(file);
return 0;
}
察ç:
- ãã©ãŒãããæå®åãšæž¡ãããŒã¿åã確èªããŠãã ããïŒäŸ:
%d
ã¯æŽæ°ã%s
ã¯æååïŒã
4. fprintfã§ã®ãããã¡ãªã³ã°ã®åœ±é¿ã¯ïŒ
åç
- ãããã¡ãªã³ã°:
- åºåã¯äžæçã«ãããã¡ã«ä¿åããããããã¡ãæºæ¯ã«ãªãã
fclose
ãfflush
ãåŒã³åºããããŸã§ãã¡ã€ã«ã«æžã蟌ãŸããŸããã - åé¡ç¹:
- ããã°ã©ã ãç°åžžçµäºããå Žåããããã¡ã«æºãŸã£ãŠããããŒã¿ããã¡ã€ã«ã«æžã蟌ãŸããã«å€±ãããå¯èœæ§ããããŸãã
察ç
fflush
ã䜿çš:
- ãããã¡ãæåã§ãã©ãã·ã¥ããããšã§ãããŒã¿ãå³åº§ã«æžã蟌ãã
- äŸ:
fflush
ã®äœ¿çš
#include <stdio.h>
int main() {
FILE *file = fopen("buffered_output.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
fprintf(file, "Buffered data.\n");
fflush(file); // ãããã¡ããã©ãã·ã¥ããŠå³åº§ã«æžã蟌ã¿
fclose(file);
return 0;
}
5. ãã¡ã€ã«åºåãéäžã§éåããå Žåã®å¯ŸåŠæ³ã¯ïŒ
åç
- ãã¡ã€ã«åºåãéäžã§éåããåå ãšããŠä»¥äžãèããããŸãã
- ãã¡ã€ã«ãéããŠããªã:
- ãããã¡ããã©ãã·ã¥ããããæªæžã蟌ã¿ã®ããŒã¿ã倱ãããã
- ãã£ã¹ã¯å®¹éäžè¶³:
- æžã蟌ã¿äžã«ç©ºã容éã足ããªããªãã
äŸ: ãã¡ã€ã«ãæ£ããéãã
#include <stdio.h>
int main() {
FILE *file = fopen("partial_output.txt", "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open file.\n");
return 1;
}
fprintf(file, "This is complete data.\n");
// fcloseãå¿ããªã
fclose(file);
return 0;
}
察ç:
fclose
ãå¿ ãåŒã³åºããåºååŠçãæ£ç¢ºã«çµäºãããã- æžã蟌ã¿äžã«ãšã©ãŒãçºçããå Žåã¯ãæ»ãå€ã確èªããã
ãŸãšã
fprintf
ã¯æè»æ§ã®é«ãåºåé¢æ°ã§ãããé©åãªãšã©ãŒãã³ããªã³ã°ãæåã³ãŒãã®èšå®ãéèŠã§ãã- FAQã§åãäžããå 容ãåèã«ããããšã§ããããããã©ãã«ãæªç¶ã«é²ãããšãã§ããŸãã
8. è€æ°ãã¡ã€ã«ã®åæåºå
fprintf
ã掻çšããã°ãè€æ°ã®ãã¡ã€ã«ã«åæã«ããŒã¿ãæžã蟌ãããšãã§ããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãå®åã§åœ¹ç«ã€åæåºåã®æ¹æ³ã解説ããŸãã
è€æ°ã®ãã¡ã€ã«ãåæã«æ±ãåºæ¬æ§é
Cèšèªã§ã¯ãè€æ°ã®FILE
ãã€ã³ã¿ã䜿çšããŠãè€æ°ã®ãã¡ã€ã«ãåæã«æäœã§ããŸããããããã®ãã¡ã€ã«ãã€ã³ã¿ã«å¯ŸããŠfopen
ãfprintf
ãfclose
ãé©åã«å®è¡ããããšãéèŠã§ãã
åºæ¬äŸ: 2ã€ã®ãã¡ã€ã«ã«åæåºå
#include <stdio.h>
int main() {
// 2ã€ã®ãã¡ã€ã«ãéã
FILE *file1 = fopen("output1.txt", "w");
FILE *file2 = fopen("output2.txt", "w");
if (file1 == NULL || file2 == NULL) {
fprintf(stderr, "Error: Could not open one of the files.\n");
if (file1) fclose(file1);
if (file2) fclose(file2);
return 1;
}
// ãã¡ã€ã«1ã«ããŒã¿ãæžã蟌ã
fprintf(file1, "This is the first file.\n");
// ãã¡ã€ã«2ã«ããŒã¿ãæžã蟌ã
fprintf(file2, "This is the second file.\n");
// ãã¡ã€ã«ãéãã
fclose(file1);
fclose(file2);
printf("Data written to both files successfully.\n");
return 0;
}
output1.txt ã®å 容:
This is the first file.
output2.txt ã®å 容:
This is the second file.
ãã€ã³ã
- ãšã©ãŒãã§ãã¯:
- ããããã®
fopen
ãæåãããã確èªããŸãã
- ãªãœãŒã¹ã®è§£æŸ:
- å¿
ãéããå
šãŠã®ãã¡ã€ã«ã
fclose
ã§éããã
åçãªãã¡ã€ã«æäœ
åçã«ãã¡ã€ã«åãçæããè€æ°ã®ãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãäŸã瀺ããŸãã
äŸ: åçãã¡ã€ã«åã䜿çšããåºå
#include <stdio.h>
int main() {
char filename[20];
for (int i = 1; i <= 3; i++) {
// ãã¡ã€ã«åãåçã«çæ
sprintf(filename, "file%d.txt", i);
// ãã¡ã€ã«ãéã
FILE *file = fopen(filename, "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open %s\n", filename);
continue; // 次ã®ãã¡ã€ã«ã«é²ã
}
// ãã¡ã€ã«ã«æžã蟌ã
fprintf(file, "This is file number %d\n", i);
// ãã¡ã€ã«ãéãã
fclose(file);
}
printf("Data written to files successfully.\n");
return 0;
}
çæããããã¡ã€ã«ã®äŸ:
file1.txt
:This is file number 1
file2.txt
:This is file number 2
file3.txt
:This is file number 3
ãã€ã³ã
sprintf
ã䜿çšããŠãã¡ã€ã«åãåçã«çæã- ãšã©ãŒãçºçããå Žåã¯æ¬¡ã®ã«ãŒãã«é²ãã
è€æ°ãã¡ã€ã«ãžã®äžŠåæžã蟌ã¿
è€æ°ã®ãã¡ã€ã«ã«åæã«å€§éã®ããŒã¿ãæžã蟌ãå Žåã䞊ååŠçïŒã¹ã¬ããïŒã䜿çšããããšãã§ããŸãã
äŸ: ã¹ã¬ããã䜿çšãã䞊åæžã蟌ã¿
以äžã¯ãPOSIXã¹ã¬ããïŒpthreadïŒã䜿çšããŠäžŠåæžã蟌ã¿ãè¡ãäŸã§ãã
#include <stdio.h>
#include <pthread.h>
void *write_to_file(void *arg) {
char *filename = (char *)arg;
FILE *file = fopen(filename, "w");
if (file == NULL) {
fprintf(stderr, "Error: Could not open %s\n", filename);
return NULL;
}
fprintf(file, "Data written to %s\n", filename);
fclose(file);
return NULL;
}
int main() {
pthread_t threads[3];
char *filenames[] = {"thread1.txt", "thread2.txt", "thread3.txt"};
for (int i = 0; i < 3; i++) {
pthread_create(&threads[i], NULL, write_to_file, filenames[i]);
}
for (int i = 0; i < 3; i++) {
pthread_join(threads[i], NULL);
}
printf("Data written to all files in parallel.\n");
return 0;
}
çæããããã¡ã€ã«ã®äŸ:
thread1.txt
:Data written to thread1.txt
thread2.txt
:Data written to thread2.txt
thread3.txt
:Data written to thread3.txt
ãã€ã³ã
- ã¹ã¬ããã䜿çšããããšã§ãè€æ°ã®ãã¡ã€ã«ã«äžŠåã§æžã蟌ã¿ãå¯èœã
- ã¹ã¬ããã®åæïŒ
pthread_join
ïŒãå¿ããªãã
ãŸãšã
fprintf
ã䜿ãã°ãè€æ°ã®ãã¡ã€ã«ã«åæã«ããŒã¿ãåºåå¯èœã- åçãªãã¡ã€ã«åçæãã¹ã¬ããã掻çšããããšã§ãæè»æ§ãããã©ãŒãã³ã¹ãåäžããŸãã
- ãªãœãŒã¹ç®¡çïŒ
fclose
ããšã©ãŒåŠçïŒã培åºããããšã§ãå®å šãªããã°ã©ã ãå®çŸã§ããŸãã