ページ 1 / 1
ファイル作成
Posted: 2009年8月06日(木) 01:01
by 恐
ファイルを作成するプログラムを作っています。
ユーザーにファイル名を入力していただき、
そのファイル名でファイルを作成したいのですが、
char a
の中にファイル名を入力したとき
どのようにすれば
入力されたファイル名でファイルが作成されるのでしょう?
Re:ファイル作成
Posted: 2009年8月06日(木) 02:56
by sizuma
>どのようにすれば
>入力されたファイル名でファイルが作成されるのでしょう?
C言語、コンソールでいいのでしょうか?
書き込みモードでオープンすれば勝手に作られます。
ちなみにchar型の中には一文字しか入りませんが・・・・
文法は大丈夫でしょうか?
Re:ファイル作成
Posted: 2009年8月06日(木) 03:25
by 恐
fp = fopen("*a","w")
ということでしょうか?
Re:ファイル作成
Posted: 2009年8月06日(木) 03:56
by sizuma
fopen(char *,"モード")です。
fp = fopen("*a","w") だと
*aというファイルを作ります。(*というファイル名は使えないと思いますが・・・)
もう一度言いますが、char型だと一文字しか格納できないですよ?
ユーザーに一文字だけ入力してもらうんですか?
どうしてもaに格納されてる一文字が使いたいなら
char str[/url] = {'\0','\0',} ;
str[0] = a;
fp = fopen(str,"w");
でしょうか?動作は確認してませんが;
というか今更ながらtxtの書き込みでファイルを作ってよかったのでしょうか?
Re:ファイル作成
Posted: 2009年8月06日(木) 04:28
by 恐
いや一文字ではないです。
すみません。
その場合は
char a[100];
scanf("%s",&a)
でいいんですよね?
Re:ファイル作成
Posted: 2009年8月06日(木) 04:47
by 恐
こんな感じでいいんですかね?
#include <stdio.h>
#include <conio.h>
int main()
{
int i = 0;
int x = 0;
int y = 0;
char a[100];
char str[/url] = {'\0','\0',};
FILE *fp;
printf("ファイル作成\n");
printf("ファイル名を入力してください。\n\n");
printf("ファイル名:");
scanf("%s",&a);
i = strlen(a);
while(y < i)
{
str[x] = a[y];
y++;
x++;
}
fp = fopen(str,"w");
fputs("テスト",fp);
fclose(fp);
getch();
}
Re:ファイル作成
Posted: 2009年8月06日(木) 05:43
by sizuma
実行環境はないのでしょうか?
実行してみて、エラーからデバッグしてみては?
>その場合は
>char a[100];
>scanf("%s",&a)
>でいいんですよね?
違います。急ぎの課題などでないのであれば、ポインタ、文字列、scanfの仕様等じっくり復習したほうがいいと思いますよ
Re:ファイル作成
Posted: 2009年8月06日(木) 09:37
by non
>char str[/url] = {'\0','\0',};
strは何をしたいのでしょうか?