ファイル作成

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

ファイル作成

#1

投稿記事 by » 16年前

ファイルを作成するプログラムを作っています。

ユーザーにファイル名を入力していただき、
そのファイル名でファイルを作成したいのですが、

char a

の中にファイル名を入力したとき

どのようにすれば
入力されたファイル名でファイルが作成されるのでしょう?

sizuma

Re:ファイル作成

#2

投稿記事 by sizuma » 16年前

>どのようにすれば
>入力されたファイル名でファイルが作成されるのでしょう?

C言語、コンソールでいいのでしょうか?
書き込みモードでオープンすれば勝手に作られます。
ちなみにchar型の中には一文字しか入りませんが・・・・
文法は大丈夫でしょうか?

Re:ファイル作成

#3

投稿記事 by » 16年前

fp = fopen("*a","w")
ということでしょうか?

sizuma

Re:ファイル作成

#4

投稿記事 by sizuma » 16年前

fopen(char *,"モード")です。

fp = fopen("*a","w") だと
*aというファイルを作ります。(*というファイル名は使えないと思いますが・・・)

もう一度言いますが、char型だと一文字しか格納できないですよ?
ユーザーに一文字だけ入力してもらうんですか?
どうしてもaに格納されてる一文字が使いたいなら

char str[/url] = {'\0','\0',} ;
str[0] = a;
fp = fopen(str,"w");

でしょうか?動作は確認してませんが;
というか今更ながらtxtの書き込みでファイルを作ってよかったのでしょうか?

Re:ファイル作成

#5

投稿記事 by » 16年前

いや一文字ではないです。
すみません。

その場合は
char a[100];

scanf("%s",&a)
でいいんですよね?

Re:ファイル作成

#6

投稿記事 by » 16年前

こんな感じでいいんですかね?
#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();
}

sizuma

Re:ファイル作成

#7

投稿記事 by sizuma » 16年前

実行環境はないのでしょうか?
実行してみて、エラーからデバッグしてみては?

>その場合は
>char a[100];
>scanf("%s",&a)
>でいいんですよね?

違います。急ぎの課題などでないのであれば、ポインタ、文字列、scanfの仕様等じっくり復習したほうがいいと思いますよ

non

Re:ファイル作成

#8

投稿記事 by non » 16年前

>char str[/url] = {'\0','\0',};
strは何をしたいのでしょうか?

閉鎖

“C言語何でも質問掲示板” へ戻る