Webやここで検索していてもわかりませんでした。お願いします。
通常ファイル名の作成はfopen("ファイル名","wなど")ですが、目標としてはプログラムで今日の日付を取得し、「ファイル名050420」という風に付け加えたいのですがどうすればできますか?

A 回答 (2件)

日付を含む文字列を作成するようにすればうまくいきます。



time_t t;
char fname[32];

t = time(NULL);
strftime(fname, sizeof(fname), "basename%y%m%d.log", localtime(&t));
で出来上がったfnameでfopen()してください。
    • good
    • 1
この回答へのお礼

ありがとうございます!!!
おかげで日付つきのファイルを作ることができました♪

お礼日時:2005/04/20 14:51

例えば


CTime time = CTime::GetCurrentTime();

time.GetYear(),time.GetMonth(),time.GetDay()
を使うのは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAutoCAD 2005 印刷時にファイル名表示

AutoCAD 2005 印刷時にファイル名表示
印刷時にファイル名を表示したいのですが、
オプション→印刷スタンプ で 図面名をチェックすると、フォルダ名まで表示されます。
ファイル名だけ表示したいのですが、方法を教えて下さい。

Aベストアンサー

バージョンが違うと操作が違うかもしれませんが、下記サイト「DWG図面ファイルの名称を図面内に記入したい。」を参照下さい。
http://www.g-hokuto.jp/autocad/auto004033.html
「図1」をクリックして拡大してみると、右の方に「ファイル名のみ」「パスのみ」「パスとファイル名」が選べます。この中から「ファイル名のみ」を選んで下さい。

この操作だと図面の中に直にファイル名が入ってしまいます。印刷時のみ出力したい場合は、「出力した図面の余白にファイル名称や日付を記入させたい。」を参照。
http://www.g-hokuto.jp/autocad/auto009010.html
やはり、図1を拡大すると「印刷スタンプ設定」というボタンがあります。この中に上記のような「ファイル名のみ」という設定はないでしょうか?。
(私は今手元にAutoCADがないので確認できません。)。
もしなければ、上記の方法で図面中に書き込むことでいかがでしょうか。印刷時のみONにするレイヤを作ってそこに書き込めば、普段は邪魔になりません。

Qfopenでファイル名に、変数を使いたい

カレントディレクトリにある「1.txt」を扱う場合は
fp = fopen("./1.txt", "r");
上記で出来るのですが、扱いたいファイルが複数あり、
「./x.txt」 として、「x」の値を変えながら複数のファイルを取り扱いと考えております。

char namae[2]={'1','2'};
for(x=0;x<2;x++)
fp = fopen("./%c.txt",name[x], "r");

とやってみたのですが、
「fopenの呼び出しに余分なパラメータがある」と出てしまいます。
どのようにしたら、よろしいでしょうか?

Aベストアンサー

>fp = fopen("./%c.txt",name[x], "r");
この記述では、
"./%c.txt"
name[x]
"r"
の3つのパラメータとなってしまいます。
fopen()のパラメータは、ファイルパスとモードの2つですので、パラメータが多くなっています。

なので、先に動的に変わるファイルパスを作成し、そのファイルパスをfopen()に指定したらいいのではないでしょうか。

char namae[2]={'1','2'};
char filepath[256];
for(x=0;x<2;x++) {
 sprintf(filepath, "./%c.txt", namae[x]);
 fp = fopen(filepath, "r");
 /*その他の処理*/
 fclose(fp);
}

Qmiで印刷した時にファイル名と線を印刷させないには??

タイトル通りなのですが
miで印刷した時に紙の下の方にファイル名と線が印刷されてしまいます;
この線とファイル名が印刷されないように印刷できますでしょうか??

Aベストアンサー

MacOSX用のmiというテキストエディタの事で合ってますよね?

メニューの[ファイル]→[印刷フォーマット設定]で
「ファイル名を下部に印刷する」のチェックを外して、OKを押してください。

Qfopenで開いたファイルのサイズを取得したい

おはようございます。
Javaはそれなりに経験があるのですが、Cの経験は皆無に等しいものです。

FILE *fp;
fp = fopen("C:\hoge.txt","r");
if(::GetFileSize(fp,NULL)>1000000){
ログをバックアップに格納し、新しいファイルを作る;
}

としたところ、ファイルの中身が空でもif文の中を通るようになってしまいました。
ファイルサイズがうまくとれていないようなのですが、どこに原因があるのでしょうか。
クイックウォッチをしようしても中の値が見れません。。。。。
環境はMicrosoft Visual Studio .NET 2003 + WinXPです。
よろしくお願いいたします。

Aベストアンサー

ご質問の内容のプログラムでGetFileSizeは使えません。GetFileSizeを使用する場合、第一引数はCreateFileなどのAPIで取得できるファイルハンドルを使用します。

fopenの場合、ファイルディスクリプタですので、feof、fread、fseekなどを使用して、同様の機能を実現する必要があります。

QPowerPoint 2002でファイル名をフッターに印刷する方法

PowerPoint 2002の多数のファイルを印刷しなければなりません。印刷出力上で赤ペン修正後、またそれらのファイルを呼び出して再編集する作業をします。その際、編集対象はどのファイル名のものであったか識別できるように、あらかじめ印刷フッターにファイル名が小さく印刷されるように設定したいのですが、大量のファイルをひとつひとつ呼び出してフッターにファイル名を手入力しておくのは非現実的なので、何か良い方法はないでしょうか。
印刷時のプロパティに「ファイル名をフッターに印刷」などというオプションがあれば最高なのですが。
マクロやフリーウェアを通すといった必要があるかもしれませんが、いちばん簡単な方法が知りたいです。

Aベストアンサー

No.1です。

VBAを使うと一括での設定は可能です。解除する処理もVBAで作成できるハズ。

大雑把に説明しますと、

1) 「自動処理.ppt」を新規作成。
2) [ツール]-[マクロ]-[新しいマクロの記録]で記録開始。
3) 対象ファイルを開き、フッタに「ほげほげ」と設定し、上書き保存、閉じる手順を実施。
4) マクロの記録を終了。
5) Alt+F11でVBEditorを起動。
6) 「Sub Macro1()」と記録されているマクロを
  「Sub SetFooter(strFilename as String)」と変更。
 マクロ内で、ファイル名を指定している「"C:\MyDoc…"」とフッタ文字列を指定している「"ほげほげ"」の部分をstrFilenameに変更。
7) 作成したSetFooterを呼び出すモジュールを作成。
Sub RunAll()
 SetFooter("ファイル1.ppt")
 SetFooter("ファイル2.ppt")
 SetFooter("ファイル3.ppt")
 …
End Sub

ファイルの一覧を取得するツールを使ったり、Excelで文字列作成すると楽。
8) マクロRunAllを実行、エラーが出るなら修正。

のような手順です。

No.1です。

VBAを使うと一括での設定は可能です。解除する処理もVBAで作成できるハズ。

大雑把に説明しますと、

1) 「自動処理.ppt」を新規作成。
2) [ツール]-[マクロ]-[新しいマクロの記録]で記録開始。
3) 対象ファイルを開き、フッタに「ほげほげ」と設定し、上書き保存、閉じる手順を実施。
4) マクロの記録を終了。
5) Alt+F11でVBEditorを起動。
6) 「Sub Macro1()」と記録されているマクロを
  「Sub SetFooter(strFilename as String)」と変更。
 マクロ内で、ファイル名を指定してい...続きを読む

Qファイルをドロップするとfopenからファイルが作成できません

C言語でコンソールアプリケーションを作っています。
ファイルをexeにドロップして実行し、別のファイルに結果を出力させたいのですが、出力ファイルが作成されません。

どのようにすればよろしいのでしょうか。

コンソールから渡すときはファイルが作成されます。
コンパイラはBorland C++ Compiler 5.5を使用しています。
以下にコードの一部を掲載します。

int main(int argc, char *argv[])
{
 char filename[256];
 FILE *inputFile;
 FILE *outputFile;
 int i;
 for(i=1; i<argc; i++)
 {
  if((inputFile=fopen(filename,"r")) == NULL)
  {/*エラー処理*/}
  sprintf(filename,"result%d.txt",i); // 出力ファイル名
  if((outputFile=fopen(filename,"w")) == NULL)
  {/*エラー処理*/}
  for(;;)
  {
   char ss[1024];
   if(fgets(ss,1024,inputFile) ==NULL) break;
   fputs(ss,outputFile);
  }
  fclose(inputFile);
  fclose(outputFile);
 }
 return 0;
}

C言語でコンソールアプリケーションを作っています。
ファイルをexeにドロップして実行し、別のファイルに結果を出力させたいのですが、出力ファイルが作成されません。

どのようにすればよろしいのでしょうか。

コンソールから渡すときはファイルが作成されます。
コンパイラはBorland C++ Compiler 5.5を使用しています。
以下にコードの一部を掲載します。

int main(int argc, char *argv[])
{
 char filename[256];
 FILE *inputFile;
 FILE *outputFile;
 int i;
 for(i=1; i<argc; ...続きを読む

Aベストアンサー

うちの環境(WindowsXP)での場合ですが・・・

ダブルクリックで実行した場合のカレントディレクトリは、
exeファイルと同じ場所になりますが、

ドラッグ&ドロップで実行した場合のカレントディレクトリは、
環境変数 USERPROFILE と同じ場所になります。

例: C:\Documents and Settings\username

exeの場所や、ドラッグしたファイルの場所には関係なく、固定のようです。

ディレクトリを指定せず保存した場合、ここにファイルが作られていると思います。

下記のようなプログラムで、実行時のカレントディレクトリを調べてみて下さい。

#include <stdio.h>
#include <windows.h>
void main(void)
{
char s[255];
char c;
GetCurrentDirectory(255,s);
printf("%s\n", s);
c = getchar();
}

Qファイル名の印刷方法は

1.インタ-ネットで大量にダウンロ-ドしたVIDEOファイル等をファイル名だけ印刷したいのです。エクスプロ-ラ・ツリ-→ファイル名一覧→「ファイル名のコピ-」が見あたりません。単なるコピ-ではファイルそのものを扱うので不適当です。
名前の変更→ファイル名を反転→コピ-→メモ帳などに貼り付けの方法では、ファイル名1ケづつの処理なので問題外です。
MS-DOS時代のDIRから表示されるファイル名一覧を印刷する方法はなくなったのでしょうか?こんなはずがないと思いますが私の盲点です。
なお過去のQ&Aでは、ファイル名のコピ-コマンドがマウスの右ボタン・メニュ-にあると回答されていますが見あたりません。
以上教えてください。
2.出来れば複数のホルダ-のファイル名を合わせて、エクセルでソ-トもしたく、CVSデ-タとしてファイル名だけをデ-タ収録する方法も合わせてお願いします。

Aベストアンサー

こういったツールを利用するのが簡単だと思います。

LS - ファイル一覧の出力
http://www.vector.co.jp/soft/win95/util/se247619.html

参考URL:http://www.vector.co.jp/soft/win95/util/se247619.html

Qfopen(ファイルパス)

いつもお世話になっております。
現在ファイルの作成、入力について勉強しています。

FILE *maketxt;
maketxt = fopen("C:\~\~\~.txt",w+);

上の状況でファイルの作成は出来るようになりましたが、
更にファイル名をfopen関数の外に定義したいと思っています。
というのもファイル名にタイムスタンプを入れたいためで、ためしに以下のようにやってみてもできませんでした。(タイムスタンプに関しては事前にlocaltime関数で定義済み)

fprintf(text,C:\~\~\%d.txt,tm_sec);
maketxt = fopen("text",w+);

うまい書き方をご存知の方、ご教授お願いいたします。

Aベストアンサー

関数と文字列の使い方が間違ってます。
fprintfはファイルに文字列データを書き出すための関数。要するにテキストファイルを作成するための関数です。

No.1さんの様に書くのが正解です。
注意点を幾つか。

1.C:\~\~\%d.txt
文字列なら"で囲まないとダメ。
\マークはエスケープなので、\を文字としたいときは\\と書く。
なので、文字列に関して復習をしたほうが良いですよ。

2.変数と文字列の出鱈目。
fprintf(text,C:\~\~\%d.txt,tm_sec);
maketxt = fopen("text",w+);
これを見るとtextは変数名。"text"は文字列ですが同列に扱っている様に見えます。変数の型と定数の型の復習をしましょう。
あとは関数の
FILE *fopen(
const char *filename,
const char *mode
);
と書かれているプロトタイプの意味を理解する必要があります。

3.tm_secは秒だけだけど良いの?
本当は、日時にしたいのでは?

関数と文字列の使い方が間違ってます。
fprintfはファイルに文字列データを書き出すための関数。要するにテキストファイルを作成するための関数です。

No.1さんの様に書くのが正解です。
注意点を幾つか。

1.C:\~\~\%d.txt
文字列なら"で囲まないとダメ。
\マークはエスケープなので、\を文字としたいときは\\と書く。
なので、文字列に関して復習をしたほうが良いですよ。

2.変数と文字列の出鱈目。
fprintf(text,C:\~\~\%d.txt,tm_sec);
maketxt = fopen("text",w+);
これを見るとtext...続きを読む

QJPEG写真のファイル名を印刷する方法

JPEG写真のファイル名を印刷する方法

JPEG写真をA4に4枚印刷をしたいのですが、写真の上にファイル名を
入れて印刷したいのですが、どういう方法ですればいいか教えてください。

Aベストアンサー

最近使ってないので、自己責任でお願いしたいですが、
GPRというソフトで可能だったと思います。

検索で出てきたサイトは以下です。
http://www.adv-jp.com/gpr/

シェアウエアですので、その辺りもご了承を。

Qfopenで別ディレクトリにファイルをオープンしたい

 LinuxでC言語のプログラムを作っています。書き込みでファイルをオープンする際に、別のディレクトリにファイルを作成したいのです。しかし普通にターミナルの上でやるような指定の仕方だとうまくいきません。
 以前にWindows環境でfopenの際のパス指定の質問があったみたいですが、Linuxではどのように指定したらいいでしょう…?よろしくお願いします。

Aベストアンサー

fopenで指定するファイル名は、絶対パス指定と相対パス指定の何れかで行います。
ファイル名を"file"としたとき、
"/aaa/bbb/file"が絶対パス指定です。
相対パス指定は
"file"又は"./file"となります。
これはwindowsの
"c:\\aaa\\bbb\\file"
"file"に相当します。
絶対パス指定で別のディレクトリに"file"を作成したい場合、別のディレクトリが/aaa/bbbであると仮定すると
"/aaa/bbb/file"がfopenで指定するファイル名となります。
相対パス名で指定方法については、現在自分がどこにいるか(どのディレクトリで実行するか)が、問題になります。
絶対パス指定で通常は問題ないので、この方法で行って下さい。どうしても相対パス名で指定したい場合は、その旨補足して下さい。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報