
No.1ベストアンサー
- 回答日時:
csvファイルはカンマ区切りでデータが並んでいます。
改行文字を書き込むと、1レコードが終わって次のレコードへ移ります。
fopen()でファイル名の後ろの拡張子をそのまま csv とすればよいです。
FILE *fp;
int data[4], i;
struct tm *ptr;
time_t lt;
if((fp = fopen("YYMMDD.csv", "a")) == NULL) {
printf("file open error\n");
exit(1);
}
for(i=0; i<4; i++) {
scanf("%d", &data[i]);
fprintf(fp, "%d,", data[i]);
}
lt = time(NULL);
ptr = localtime(<);
fprintf(fp, "%s\n", asctime(ptr));
この回答へのお礼
お礼日時:2007/04/27 08:59
早速のご回答ありがとうございます。
CSVファイルのファイル名は、本日の日付(例えば070427.csv)に
したいのですが、その場合はどうすればよろしいのでしょうか。
No.5
- 回答日時:
日付を元にファイル名を組み立てるならこういう方法もあります。
#include <stdio.h>
#include <time.h>
int
main()
{
time_t t;
struct tm *date;
char filename[256];
int len;
t = time(NULL);
date = localtime(&t);
len = strftime(filename, sizeof filename, "%Y%m%d.csv", date);
if (len != 0)
printf("%s\n", filename);
len = strftime(filename, sizeof filename, "%y%m%d.csv", date);
if (len != 0)
printf("%s\n", filename);
return 0;
}
実行結果:
20070427.csv
070427.csv
BohYoh.com【C言語講座】標準ライブラリ関数 strftime
http://www.bohyoh.com/CandCPP/C/Library/strftime …
No.4
- 回答日時:
★ファイル名の作成は。
・『time』、『localtime』、『sprintf』を使います。
下にそのサンプルを載せます。
サンプル:
char file[ 256 ];
time_t ltm;
struct tm *ptm;
ltm = time( NULL );
ptm = localtime( <m );
sprintf( file, "%02d%02d%02d.CSV",
((ptm->tm_year + 1900) % 100),
(ptm->tm_mon + 1),
(ptm->tm_mday) );
解説:
・現在の時刻は time 関数で取得します。
その後、localtime 関数で tm 構造体に年、月、日、時、分、秒の扱いやすい値に変換します。
次は、tm 構造体のメンバ tm_year、tm_mon、tm_mday を使ってファイル名を作成します。
・sprintf 関数で printf 感覚でファイル名を作成します。文字列 file がそれ。
ファイル名の作成で『年』は西暦の2桁にするために 100 で割った余りを使います。
(年 % 100) とすると下2桁となります。
・以上。参考に!
参考URL:http://www9.plala.or.jp/sgwr-t/lib/time.html,htt …
No.2
- 回答日時:
> 早速のご回答ありがとうございます。
> CSVファイルのファイル名は、本日の日付(例えば070427.csv)に
> したいのですが、その場合はどうすればよろしいのでしょうか。
:
:
char filename[ 16 ]; ← ファイル名を設定するためのバッファ
time_t lt;
struct tm *ptr;
lt = time( NULL );
ptr = localtime( &lt ); ← なぜかアンパーサントが文字化けするので全角文字を使用。コーディングするときは半角で。
/*
* ここまでは #1 さんの例と同じなのでそのまま使用。
* 次に日付でファイル名を生成する。年は下2桁なので100の剰余。
* 2桁にするために書式に"0"を忘れずに。
*/
snprintf( filename, 15, "%02d%02d%02d.csv", ( ptr->tm_year + 1900 ) % 100, ptr->tm_mon + 1, ptr->tm_mday );
fp = fopen( filename, ....
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
VBAでCSVファイルのインポート...
-
csvファイルのデータをCで読み...
-
【エクセル マクロ】読み込ん...
-
CSV形式での保存時に”文字列...
-
csvファイル 項目数取得
-
エクセルで!!
-
複数のcsvファイルをExcelに一...
-
エクセルのプロパティーでセキ...
-
ExcelブックをGoogleスプレッド...
-
エクセルで複数のコメントのサ...
-
エクセルvbaでdocuworksprinter...
-
【VBA】テキストファイルを指定...
-
Excelvbaでブックをコピー名前...
-
エクセルマクロで指定フォルダ...
-
動かなくなってしまった古いVBA...
-
Excel csv保存 列数が異なる場...
-
エクセルVBAで一つ上の階層...
-
[エクセル]コピーするとオブジ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
csvファイルでの日付設定「yyyy...
-
【C#】パス名で無効な文字
-
CSV形式での保存時に”文字列...
-
csvファイル 項目数取得
-
マクロから出力されるcsvのダブ...
-
csvファイルを列数ごとに分割す...
-
VBAでcsvファイルを読み込んで...
-
データ解析ソフトRでのファイル...
-
【エクセルVBA】お願いします。...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルのデータの一部を取...
-
CSVファイル作成
-
CSV出力して、MS/EXCELで開くと...
-
エクセル形式のファイルの読み込み
-
CSVファイルの項目行を削除...
-
【エクセル マクロ】読み込ん...
-
複数のcsvファイルをExcelに一...
-
複数のCSVファイルのAccessテー...
おすすめ情報