ページ 11

fgets()でエラー

Posted: 2010年11月21日(日) 17:14
by C言語勉強中@こんた
はじめまして。

現在、VC++2008で自宅で開発していますが、テキストファイルの読み込みで、下記エラーが出てしまい、
作業が止まってしまっています。いろいろネットで検索して試してみたのですが、解決できません。

エラー内容は下記のとおりです。
---------------------------
Debug Assertion Faied!

program: ...Viasual Studio 2008\Projects\html server\Debug\xxx.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\fgets.c
Line:57

Expression:(str != NULL)

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

---------------------------
中止(A) 再試行(R) 無視(I)
---------------------------

fopen()後、
while(fgetws(buf,256,configfile) != NULL)★ココで上記エラー発生
{
printf("%s",buf);
}
すいませんが、よろしくお願いします。

Re:fgets()でエラー

Posted: 2010年11月21日(日) 17:24
by ゆーずぃ
fgetwsでいいんですか?

while(fgetws(buf,256,configfile) != EOF)
ではどうでしょう?

Re:fgets()でエラー

Posted: 2010年11月21日(日) 17:38
by ISLe
bufがポインタ変数でかつ初期化(領域確保)していない、とか。

Re:fgets()でエラー

Posted: 2010年11月21日(日) 18:37
by Justy
 第三引数の configfileが NULLになっているのでしょう。

Re:fgets()でエラー

Posted: 2010年11月21日(日) 19:00
by C言語勉強中@こんた
>ゆーずぃさん
ご教授ありがとうございます。
while(fgetws(buf,256,configfile) != EOF)
上記でも同じエラーがでてしまいます。

>ISLeさん
ご教授ありがとうございます。
bufを””で初期化しましたが、うまくいきませんでした。

>Justyさん
ご教授ありがとうございます。
configfileのNULLチェックは下記のように行っており、問題はないようです。
-------------------------------------------------
configfile = fopen("config.txt","r");
if(configfile = NULL)
{
return;
}
-------------------------------------------------

Re:fgets()でエラー

Posted: 2010年11月21日(日) 19:06
by ゆーずぃ
そのチェックのせいですww

if(configfile = NULL)
で、


configfileにNULLを代入しています。

if(configfile == NULL)
にして下さい。

Re:fgets()でエラー

Posted: 2010年11月21日(日) 19:06
by box
> bufを””で初期化しましたが、うまくいきませんでした。

bufの定義部分を見せてください。

Re:fgets()でエラー

Posted: 2010年11月21日(日) 19:25
by C言語勉強中@こんた
>ゆーずぃさん
まさか、NULチェックが原因だったんですね。。
しょうもないミスですいません><

if(configfile == NULL)
上記のように修正しましたらデバッグ出来ました。
ありがとうございました。
解決とさせていただきます。

>boxさん
初期は下記のように行っています。
char buf[256] = "";

皆さんありがとうございました。