■単純な画面出力
#include <stdio.h>
int main(void){
printf("ハローワールド\n");
}
単純な画面出力(=標準出力)
■標準出力stdoutを強調
#include <stdio.h>
int main(void){
fprintf(stdout,"ハローワールド\n");
}
printfとfprintf(stdout,は全く同じ動作をします。
■ファイルポインタFILE *を使用したstdout
#include <stdio.h>
int main(void){
FILE *fp = stdout;
fprintf(fp,"ハローワールド\n");
}
stdout,stderr,stdinもファイルの一種です。
■普通のファイルへの書き込み
#include <stdio.h>
int main(void){
FILE *fp = fopen("write.txt","w");
if(fp == NULL){
perror(NULL);
return -1;
}
fprintf(fp,"ハローワールド\n");
fclose(fp);
}
普通のファイル ”write.txt”に”ハローワールド”を書き込む例。
標準入力、標準出力、標準エラー(stdin,stdout,stderr)とは異なり、
普通のファイルは
プログラマが自分でファイルをfopen()/fclose()する必要があります。
■単純なキーボード入力
#include <stdio.h>
int main(void){
char buf[BUFSIZ];
printf("何か文字列を入力してね\n");
gets(buf);
printf("%s が入力されました",buf);
}
キーボード(標準入力)から1行読み込み、
オーム返しするプログラムです。
※標準入力から1行読み込む gets 関数は廃れたので、
実務では使わないで下さい。
■標準入力stdinを強調
#include <stdio.h>
#include <stdlib.h>
int main(void){
char buf[BUFSIZ];
fprintf(stdout,"何か文字列を入力してね\n");
fgets(buf,BUFSIZ,stdin);
fprintf(stdout,"%s が入力されました",buf);
}
標準入力(stdin)ファイルから1行読み込みます。
■ファイルポインタFILE *を使用したstdin
#include <stdio.h>
#include <stdlib.h>
int main(void){
char buf[BUFSIZ];
FILE *fout = stdout;
fprintf(fout,"何か文字列を入力してね\n");
FILE *fin = stdin ;
fgets(buf,BUFSIZ,fin);
fprintf(fout,"%s が入力されました",buf);
}
標準入力(stdin)ファイルから1行読み込みます。
■ファイルから1行読み込み1行書き込む
#include <stdio.h>
#include <stdlib.h>
int main(void){
char buf[BUFSIZ];
//読み込み "r"
FILE *fin = fopen("/usr/include/stdio.h","r");
if(fin == NULL){
perror(NULL);
exit(-1);
}
fgets(buf,BUFSIZ,fin);
fclose(fin);
//書き込み "w"
FILE *fout = fopen("log.txt","w");
if(fout == NULL){
perror(NULL);
exit(-1);
}
fputs(buf,fout) ;
fclose(fout);
}
stdio.hファイルから1行読み込み、
log.txtファイルに1行書き込みます。
■簡単なファイルのコピー
#include <stdio.h>
#include <stdlib.h>
int main(void){
//読み込み "r"
FILE *fin = fopen("/usr/include/stdio.h","r");
if(fin == NULL){
perror(NULL);
exit(-1);
}
//書き込み "w"
FILE *fout = fopen("log.txt","w");
if(fout == NULL){
perror(NULL);
exit(-1);
}
//コピー
char buf[BUFSIZ];
while(fgets(buf,BUFSIZ,fin) != NULL){
fputs(buf,fout) ;
}
//掃除
fclose(fin);
fclose(fout);
}
stdio.hファイルを
log.txtファイルにコピーします。