ページ 11

ファイルの入出力について

Posted: 2011年1月02日(日) 13:12
by afusin

コード:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
	FILE *fp; //入力ファイルのファイルポインタ
	char datafile[] = "itudoko.txt";
	char kubun[8], naiyou[256];
	char buff[512]; //読み込んだ文字列を格納する

	//入力ファイルをオープンする
	if((fp = fopen(datafile, "r")) == NULL) {
		printf("ファイルオープンエラー\n");
		exit(1);
	}
	while(fgets(buff, sizeof buff, fp) != NULL){ 
		sscanf(buff, "%s\t%s", kubun, naiyou); 
		printf("区分;%s 内容;%s\n", kubun, naiyou); 
	}
	fclose(fp);

	return 0;
}
こんにちわ
参考書でファイルの入出力でつまずいています
上記のプログラムは下記の内容をファイルの入出力を使い
ディスプレイに表示するものです
serifu あなたを、待っていた
serifu いつもありがとう・・
serifu こ、これが究極のおにぎりか!!
hito 全米中
hito すべての日本人
shita 涙した
shita 笑った
shurui 感動
shurui コメディ

そこでわからないことがでて
このファイルはメモ帳なのですが
このファイルをどこに保存すればよいかがまったくわかりません
どなたか手取り足取り教えていただけないでしょうか
よろしくお願いします

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 13:17
by softya(ソフト屋)
VC++なら標準だとパス指定なしのファイルの場合は、プロジェクトファイル(拡張子.vcproj)のあるフォルダに置いたファイルが読み込まれるはずです。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 13:21
by h2so5
http://www.geocities.jp/ky_webid/c/034.html

このページの下にある○パス指定も参考になると思います。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 13:34
by afusin
ありがとうございました
ぜひ参考にさせていただきます

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 13:36
by みけCAT
どこでも好きなところに保存すればいいと思います。
ただし、コンパイルしたときにできるデータが混ざらないように、独立したフォルダを作るのがいいと思います。
その際に、ファイル名の欄に「"(好きなファイル名).cpp"」と入力するのがいいと思います。
(ダブルクォーテーションマークも付けてください)

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 13:40
by afusin
デスクトップでもいいんですか?

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 13:46
by afusin
あとsoftyaさんの
VC++なら標準だとパス指定なしのファイルの場合は、プロジェクトファイル(拡張子.vcproj)のあるフォルダに置いたファイルが読み込まれるはずです。

ということばがよくわかりません
そのファイルはどこにあるのですか?
それとも自分でつくるのですか?

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:01
by Suikaba
自動作成されるときかってにおかれるんだと思いますよ

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:03
by みけCAT
そもそも環境がわからないので、なんとも言えません。
保存する目的は何ですか?
(コンパイルしたい、傑作ができたので保存しておきたい、ディスクの容量があと4KBなのでせっかくだから埋めてしまいたい、など)

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:03
by bitter_fox
どこに保存していいかわからないのはプログラムですか、データですか??

データならば、載せていただいたプログラムを見ると相対パスで指定されていますので、実行プログラムと同じフォルダに入れる必要があります。
指定を絶対パスで適切に行えば、どこに保存しても結構です。

softyaさんがおっしゃったのは、おそらくプロジェクトファイル(拡張子.vcproj)があるところに実行ファイルが作られるから、それと同じところに保存したらうまく表示されるということではないでしょうか。

[hr][追記]

コード:

while(fgets(buff, sizeof buff, fp) != NULL){ 
ここは、

コード:

while(fgets(buff, sizeof(buff), fp) != NULL){ 
このようにする必要があるように思います。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:09
by afusin
どこに保存したらいいかわからないのはファイルです
どこに保存すれば上のプログラムでファイルを展開できるかがよくわかりません
環境はvisual c++です
わかりにくくてすいません

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:16
by bitter_fox
ファイルとだけ言われても、Windowsではディレクトリ以外すべてファイルなのでわかりません。。。

聞き方を変えます。
保存したいのは、

コード:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
    FILE *fp; //入力ファイルのファイルポインタ
    char datafile[] = "itudoko.txt";
    char kubun[8], naiyou[256];
    char buff[512]; //読み込んだ文字列を格納する
 
    //入力ファイルをオープンする
    if((fp = fopen(datafile, "r")) == NULL) {
        printf("ファイルオープンエラー\n");
        exit(1);
    }
    while(fgets(buff, sizeof buff, fp) != NULL){ 
        sscanf(buff, "%s\t%s", kubun, naiyou); 
        printf("区分;%s 内容;%s\n", kubun, naiyou); 
    }
    fclose(fp);
 
    return 0;
}
これですか??

それとも、

コード:

serifu あなたを、待っていた
serifu いつもありがとう・・
serifu こ、これが究極のおにぎりか!!
hito 全米中
hito すべての日本人
shita 涙した
shita 笑った
shurui 感動
shurui コメディ
これですか??

どちらでしょう??

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:19
by Suikaba
txtファイルだとおもいますが、普通にプロジェクトファイルあるとこに保存すればよかった気がします。
まちがってたらすいません

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:20
by みけCAT
読み込むファイルの場合、exeファイルのあるフォルダ
(プロジェクトのフォルダ/Debug)
に保存すると読み込めるかもしれません。
確認はしていません。
これは、DXライブラリを使ったときに、mp3ファイルを置いた場所です。
Visual Studio 2010で再生できました。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:22
by softya(ソフト屋)
プロジェクトの新規作成時に、作成されるフォルダが指定さえる事になっているのでそのフォルダを確認してみてください。
デフォルトだとWindowsのドキュメントフォルダにVisualStudio2010などがあると思いますので、その下のプロジェクト名のフォルダの中の更に中です。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 14:58
by bitter_fox
話がデータとして流れてますので、データと思って、、、

プロジェクトが既に出来ているのであれば、
プロジェクトの名前を右クリック、追加、既定の項目の順番で進んでください。
vc1.png
エクスプローラが起動するので、ファイルのないところを右クリックして、新規作成、テキスト ドキュメントを選んでください。
ファイル名を「itudoko.txt」に変更して、ダブルクリックしてください。
vc2.png
vc2.png (52.06 KiB) 閲覧数: 8684 回
すると、VCのソリューションエクスプローラに登録されるので、ダブルクリックして開いてデータを入力してください。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 15:47
by afusin
ありがとうございます
解決いたしました

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 15:48
by みけCAT
解決したのでしたら、解決チェックをしていただけるとありがたいです。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 16:01
by softya(ソフト屋)
フォーラムルールにあります通り、どう解決したのかも書いて頂けると助かります。

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 18:34
by afusin
解決いたしました

itudoko.txtをc言語をつかって
開くことができました

ありがとうございました

Re: ファイルの入出力について

Posted: 2011年1月02日(日) 18:38
by みけCAT
afusin さんが書きました:itudoko.txtをc言語をつかって
開くことができました
それでは解決法がわかりません。
itudoko.txtをどこにおいたら開けたのかを書いてください。