こんにちは、もがちゃんです
C言語でテキストファイルへ出力する際に、よく利用するのがfputs関数です
fputs関数は、ファイルへの出力時に利用されるので
fopen関数、fclose関数と一緒に使用されます
この記事では
fputs関数の使い方を簡単なサンプルソースとともに説明します
目次
fputsの構文
#include <stdio.h>
int fputs(const char * restrict s, FILE * restrict stream);
fputsの説明
fputsは、streamで指定するファイルポインタに紐づくファイルへ、s で指定する文字列を出力する関数です
fputs関数は、streamが指すストリームにsが指す文字列を書き込む。終端ナル文字の書込みは、行わない。
JISX3010 プログラム言語C
s
ファイルへ出力する文字列を指定します
文字列の最後は、’\0’(ヌル文字)が必要です
stream
出力したいファイルに紐づくファイルポインタを指定します
(fopen関数の返却値を指定します)
返却値
ファイルへの出力に
成功した場合、0以上の値を返します
失敗した場合、EOFを返します
fputs関数は、書込みエラーが発生した場合、EOFを返す。その他の場合、非負の値を返す。
JISX3010 プログラム言語C
fputsの使い方サンプル
テキストファイルへ文字列を出力する簡単なサンプルプログラムを紹介します
サンプルソースと実行結果
#include <stdio.h>
int main(int argc, char *argv[]) {
// "w"モードで test1.txt ファイルをオープン
FILE *fp = fopen("test1.txt","w");
if(fp != NULL) {
// ファイルオープンが成功したら
char buffer[512];
int ret = EOF;
//bufferに出力する文字列を設定する
sprintf(buffer, "abcdef1234567890ABCDEF");
//ファイルへ文字列を出力する
ret = fputs(buffer, fp);
if(ret == EOF) {
printf("fputs()に失敗しました![%d]\n", ret);
return -1;
}
printf("ret[%d]\n", ret);
//ファイルへ空文字列を出力する
ret = fputs("", fp);
if(ret == EOF) {
printf("fputs()に失敗しました![%d]\n", ret);
return -1;
}
printf("ret[%d]\n", ret);
//ファイルへ文字列を出力する
ret = fputs(buffer, fp);
// ファイルをクローズする
ret = fclose(fp);
if(ret != 0) {
printf("fclose()に失敗しました![%d]\n", ret);
}
}
}
text1.txt
abcdef1234567890ABCDEFabcdef1234567890ABCDEF
fputsのまとめ
fputs関数は、fopen関数、fclose関数とセットで使用する
fputs関数で指定する s の文字列の最後には、’\0’(ヌル文字)が必要