電子書籍の厳選無料作品が豊富!

テキストファイルの読み込みについて質問です。
あらかじめ用意されたテキストファイルを1行読み込み、 読み込んだ文字列内で特定の文字を検索する以下の プログラムを作成せよ。
(1)Emacs(Visual Studio)を用いて「風が吹けば桶屋が儲かる。」をローマ字で入力し、okeya.txt というファイル名で保存せよ。
(2)つぎに、この okeya.txt を読み込み、文字列内で文字の 'a'が 何番目にあるかをすべて列挙表示するプログラムokeya.cを 作成せよ。なお、文字列の先頭文字(K)の位置を第1番目とする。
文字列中の特定文字の検索にはポインタを用いること。

まずは「風が吹けば桶屋が儲かる」(ローマ字)を表示したかったのですが、コンパイルした結果、何も表示されませんでした。
表示されるにはどうしたら良いですか?
Visual Studioを使用してます。

ソースコード
pragma warning(disable: 4996)
include <stdio.h>
include <stdlib.h>
constexpr auto N = 256;
int main(void) {
FILE* fp;
char filename[] = "okeya.txt";
char str[N];

fp = fopen(filename, "r");
if (fp == NULL) {
printf("%s file not open!\n", filename);
exit(1);
}

while (fgets(str, N, fp) != NULL) {
printf("%s", str);
}

fclose(fp);

return (0);
}

okeya.txt
Kazega hukeba okeyaga moukaru

質問者からの補足コメント

  • そうなんですね。。。
    Visual Studioだと上手くいかないとかありますかね?
    それともokeya.txtの作成方法が間違ってるとか。。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/05/23 14:03

A 回答 (6件)

> そこから質問したソースコードが入ってるファイルに一緒に入れたら上手くいった感じです。



と言うこたぁ、やっぱり、

1. 最初のokeya.txtを入れるディレクトリが間違っていた

か、あるいは

2. Visual Studioでokeya.txtを作ったつもりが拡張子がおかしな事になってた

かのどっちか、でしょうね。

あー、Windowsはキチンと拡張子見える設定にしてますかね?
    • good
    • 0

> 色々いじくったら上手くいきました。



おお、良かったですね。おめでとう!

ぶっちゃけ、Visual Studioって業務用として考えるとプロジェクト単位の管理、とか良く出来てると思うんだけど、学習用には向かねぇなぁ、とか言うのがひっさびさに弄った結論です(笑)。
もっとシンプルでエエのに、とか思うんですけどね〜。
    • good
    • 0
この回答へのお礼

ちなみにやり方なんですけど、Windowsのメモ帳に「Kazega hukeba・・・」と書いた後にデスクトップに保存・移動させて、そこからVisual Studioに持っていって上手くいきました。
そこから質問したソースコードが入ってるファイルに一緒に入れたら上手くいった感じです。

お礼日時:2021/05/24 22:50

あともう 1つ指摘しておくと, この質問文のプログラムではそもそもコンパイルできない (ので実行もできない) よ.

    • good
    • 0

一応確認ですが, 「コンパイルした」だけでは何も表示されないですよ. ちゃんと実行もしてあげてください.



ところで「Emacs(Visual Studio)を用いて」ってどういう意味なんだろう....
    • good
    • 1

> Visual Studioだと上手くいかないとかありますかね?



うーん、イカんなこりゃ。
Visual Studioってムズい・・・・・・。

ええとね、多分、okeya.txtを置く場所が違ってんじゃないか、と。
こっちでも(あんまWindows使わないんで)久々にWindows起動してVisual Studio使って確認してみたんですが・・・・・・。
多分、okeya.cppってファイルと同じ場所に置けば読み込んでくれる筈です。要するにokeya.txtを置く場所を間違えてんじゃないか。
プロジェクト名/プロジェクト名と言うディレクトリの中になる筈です。
そこにokeya.cppがあって、そこにokeya.txtを置けば上手く動くんじゃないかなぁ。
    • good
    • 0
この回答へのお礼

色々いじくったら上手くいきました。

お礼日時:2021/05/24 21:58

うーん、問題なくね?



> constexpr auto N = 256;

これだけはC++でCじゃないだろうから、

#define N 256

に直したけど、問題なくコンパイルされて実行されてますよ。
(コンパイラはclangを使ったけどね)
「Cプログラム テキストファイルの読み込み」の回答画像1
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!