• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語初心者の質問 fscanf)

C言語初心者の質問 fscanf

このQ&Aのポイント
  • C言語を勉強し始めた初心者がfscanfでフォルダ内のファイル名を読み込むプログラムを作成中
  • コンパイルは成功するが、実行時に停止してしまう問題が発生
  • 実行環境はWindows 7とVisual Studio 2013

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.4

ディレクトリーを読むなら、 http://www.geocities.co.jp/SiliconValley-Cupertino/4084/Cprogram/myls.html こういうふうにします。

torigarasoup
質問者

お礼

度々の回答ありがとうございました。 自分の最初の質問内容がいまいちわかりづらかったのかもしれません。 ディレクトリを読んで表示するには、fopenではできなかったのですね、自分の勉強不足でした。 リンクしていただいたページをじっくり読ませていただきます。 また機会がありましたらぜひよろしくおねがいたします。

その他の回答 (3)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.3

あとは、 fp=fopen(".\\data","r");  で失敗した時の処理、 if(fp==0){エラー処理}    をつける。 データが100件を超えたら処理を終わること。

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.2

#include<stdio.h> int main(void) { int i=0; char s[100][100]; FILE *fp; fp=fopen(".\\data\\hoge.txt","r"); while((fscanf(fp,"%s",&s[i]))!=EOF){ printf("%d:%s\n",i,s[i]); i++; } return 0; } これで動きますね。

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

fp=fopen(".\\data","r");  これはフォルダーですよね。 fp=fopen(".\\data\\hoge.txt","r"); こうしないと。 それと、 char s[100][100]; と宣言したら、添字は0~99までの100個です。 &s[i][100] や s[i][100]は使えません。

torigarasoup
質問者

補足

すばやい回答ありがとうございます。 フォルダ内の hoge.textの中身 を読み込みたいのではなく、 ~dataフォルダ内~ ああああ.txt いいいい.txt うううう.txt ~~~~~~~~~ のようなフォルダ内の"ああああ" "いいいい" "うううう"を読み込みんで表示したいのです。 s[1][100]=ああああ\0 s[2][100]=いいいい\0 s[3][100]=うううう\0 のようにiを設定したつもりだったのですが、使えないのですか?

関連するQ&A