fgets()でエラー

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

fgets()でエラー

#1

投稿記事 by C言語勉強中@こんた » 14年前

はじめまして。

現在、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()でエラー

#2

投稿記事 by ゆーずぃ » 14年前

fgetwsでいいんですか?

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

ISLe

Re:fgets()でエラー

#3

投稿記事 by ISLe » 14年前

bufがポインタ変数でかつ初期化(領域確保)していない、とか。

Justy

Re:fgets()でエラー

#4

投稿記事 by Justy » 14年前

 第三引数の configfileが NULLになっているのでしょう。

C言語勉強中@こんた

Re:fgets()でエラー

#5

投稿記事 by C言語勉強中@こんた » 14年前

>ゆーずぃさん
ご教授ありがとうございます。
while(fgetws(buf,256,configfile) != EOF)
上記でも同じエラーがでてしまいます。

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

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

ゆーずぃ

Re:fgets()でエラー

#6

投稿記事 by ゆーずぃ » 14年前

そのチェックのせいですww

if(configfile = NULL)
で、


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

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

box

Re:fgets()でエラー

#7

投稿記事 by box » 14年前

> bufを””で初期化しましたが、うまくいきませんでした。

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

C言語勉強中@こんた

Re:fgets()でエラー

#8

投稿記事 by C言語勉強中@こんた » 14年前

>ゆーずぃさん
まさか、NULチェックが原因だったんですね。。
しょうもないミスですいません><

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

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

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

閉鎖

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