ページ 11

ファイル作成

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は何をしたいのでしょうか?