![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
下のプログラムなのですが、
色々と調べていくとfindnext();でフリーズしてしまうことがわかりました。
しかし、なぜフリーズするのかわからないのです。
dir.hの書いてある通りに使っているつもりなのですが・・・
助言お願いいたします。
仕事にいるので早急にお願いいたします。
ちなみにコンパイラはBC4.5++です。
/*****************************************************************/
test.c
/*****************************************************************/
#include <stdio.h>
#include <dir.h>
#include <string.h>
#define MAX 10
int main(){
structffblk*data;
inti;
charname[MAX];
charpath[MAX];
strcpy(path,"c:\\*.*");
if(findfirst(path,data,0)==0){
while(1){
strcpy(name,data->ff_name);
printf("%s",name);
if(findnext(data)!=0)break;
}
}
return 0;
}
No.4ベストアンサー
- 回答日時:
ディレクトリはattribに指定しないといけません。
ヘルプを見てください。
または、dir.hを覗いてみて下さい。
#include <dir.h>
int findfirst(const char *pathname, struct ffblk *ffblk, int attrib);
ここの最後の引数attribをしていてください。
つぎのように定義してあるようです。
FA_DIRECディレクトリ
では、
お返事有難うございます。
何とかできるようになりました。
これって、コンパイラのヘルプに細かく載っているのですね。
大変有難うございます。
No.3
- 回答日時:
朝から、Cの勉強とは関心ですネ!
10年前まではチョコチョコとCで書いていましたが、
今は引退しています。
自信はありませんが、
次の文
>strcpy(path,"c:\\*.*");
"c:\\*.*"をそのパス名にして下さい。
No.2
- 回答日時:
#define MAX 10
この大きさは大丈夫でしょうか?
普通は
#define MAX 256
と大きめに書くようですが?
findnext();はANCI Cではないのでしょうか?
Win32 Nt専用です。
この回答への補足
有難うございます。
MAX値を多くすると動きました。
あと、ついでにですが、あるディレクトリ下にある、
ディレクトリ名を参照するにはどうしたらよいでしょうか?
findnext();はどうやらファイル名の取得の見みたいでしたので、
実際には、ディレクトリを取得したいのですが、何かありませんでしょうか?
No.1
- 回答日時:
構造体がポインタで宣言されていて、実体がないからではないですか?
まずそこから修正してみましょう。
あとは、直値(0等)ではなく、定義された値を使いましょう。
この回答への補足
すみませんが、具体的にどういうことでしょう?
関数はディレクトリの値を返すだけのものだと思っていたのですが、
違うのでしょうか?
findfirst();から値を引き取ってきているのだと思っていたのですが・・・
ひょっとして、
findnext();はANCI Cではないのでしょうか?
ANSI Cだと聞いてやっているのですが違うのでしょうか?
もし違うのなら、ANCI Cでディレクトリ名や、
ファイル名を取得する方法があれば教えていただけませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
enumの値から定義名を文字列化...
-
linux系OSでC99
-
VC++で文字列から任意の文字を...
-
【C++】複素数で配列を使いたい
-
CStringとString
-
JPEGやPNGが読めるLoadImage関数
-
switch文のエラーについて
-
C++ 数値データファイルから2次...
-
構造体に決められた文字列を入...
-
【C++】ヘッダ内でstringを格納...
-
C++でShowCursorを使いたい。
-
string型のフォーマット書式指...
-
VxWorks 6.4ソケット接続につい...
-
C++で大量のエラーが出る
-
C++のifstreamの使い方
-
Vectorのポインタが入ったvector
-
C++でコンパイルするとwarning...
-
findnext();について
-
Visial C++おけるπの使い方
-
テイラー展開とその精度について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラーが出ているのですが...
-
switch文のエラーについて
-
enumの値から定義名を文字列化...
-
VC++で文字列から任意の文字を...
-
なぜ、C++の標準ヘッダをインク...
-
空ENTERの判別
-
std::wstringのメモリリークに...
-
C言語からgnuplot呼び出し
-
リモートデスクトップの接続元I...
-
JPEGやPNGが読めるLoadImage関数
-
このプログラミング誰か教えて...
-
プログラミング
-
#include "fstream.h"
-
C++での <iostream.h>と<iostre...
-
std::map の const 修飾について
-
構造体配列のvectorへの変換と...
-
#defineの使い方について
-
VS2019でofstreamが未定義になる
-
指定した文字を削除したい
-
構造体に決められた文字列を入...
おすすめ情報