
テキストファイルの読み込みについて質問です。
あらかじめ用意されたテキストファイルを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
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
> そこから質問したソースコードが入ってるファイルに一緒に入れたら上手くいった感じです。
と言うこたぁ、やっぱり、
1. 最初のokeya.txtを入れるディレクトリが間違っていた
か、あるいは
2. Visual Studioでokeya.txtを作ったつもりが拡張子がおかしな事になってた
かのどっちか、でしょうね。
あー、Windowsはキチンと拡張子見える設定にしてますかね?
No.5
- 回答日時:
> 色々いじくったら上手くいきました。
おお、良かったですね。おめでとう!
ぶっちゃけ、Visual Studioって業務用として考えるとプロジェクト単位の管理、とか良く出来てると思うんだけど、学習用には向かねぇなぁ、とか言うのがひっさびさに弄った結論です(笑)。
もっとシンプルでエエのに、とか思うんですけどね〜。
ちなみにやり方なんですけど、Windowsのメモ帳に「Kazega hukeba・・・」と書いた後にデスクトップに保存・移動させて、そこからVisual Studioに持っていって上手くいきました。
そこから質問したソースコードが入ってるファイルに一緒に入れたら上手くいった感じです。
No.3
- 回答日時:
一応確認ですが, 「コンパイルした」だけでは何も表示されないですよ. ちゃんと実行もしてあげてください.
ところで「Emacs(Visual Studio)を用いて」ってどういう意味なんだろう....
No.2
- 回答日時:
> Visual Studioだと上手くいかないとかありますかね?
うーん、イカんなこりゃ。
Visual Studioってムズい・・・・・・。
ええとね、多分、okeya.txtを置く場所が違ってんじゃないか、と。
こっちでも(あんまWindows使わないんで)久々にWindows起動してVisual Studio使って確認してみたんですが・・・・・・。
多分、okeya.cppってファイルと同じ場所に置けば読み込んでくれる筈です。要するにokeya.txtを置く場所を間違えてんじゃないか。
プロジェクト名/プロジェクト名と言うディレクトリの中になる筈です。
そこにokeya.cppがあって、そこにokeya.txtを置けば上手く動くんじゃないかなぁ。
No.1
- 回答日時:
うーん、問題なくね?
> constexpr auto N = 256;
これだけはC++でCじゃないだろうから、
#define N 256
に直したけど、問題なくコンパイルされて実行されてますよ。
(コンパイラはclangを使ったけどね)

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++コンパイル時に『 C1083: in...
-
エクセルVBAではRound...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
includeと#include
-
ILSpyで、デコンパイルできない。
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
【VC++6.0(MFC)】警告「LINK : ...
-
VB6とInputManソフトの関係
-
C言語でヘッダファイルにグロー...
-
コンパイル??
-
コンパイルエラー:ユーザ定義...
-
KPIT GCCでno include path
-
C言語のコンパイルができません
-
戻り値について
-
動的な変数名のつけ方について
-
外部シンボル "_main"は未解決です
-
nEditというテキストエディタを...
-
クリティカルエラー Expressio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
Makefile作成時の拡張子.oとは?
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
マクロ コンパイルがグレーバック
-
C言語でヘッダファイルにグロー...
-
ILSpyで、デコンパイルできない。
-
【VC++6.0(MFC)】警告「LINK : ...
-
「fatal error C1189」を回避す...
-
1 つ以上の複数回定義されてい...
-
クリティカルエラー Expressio...
-
動的な変数名のつけ方について
-
C言語のコンパイルができません
-
C++コンパイル時に『 C1083: in...
-
セミコロンについて
-
他のLinuxでも動くa.outの作り方
-
includeと#include
-
ビルドとリビルドの違いを教え...
-
コンパイルエラー:ユーザ定義...
-
MFCのエラーについて
おすすめ情報
そうなんですね。。。
Visual Studioだと上手くいかないとかありますかね?
それともokeya.txtの作成方法が間違ってるとか。。