住所録の作成


すさのお  2006-02-01 05:16:27  No: 60626

先日教えていただいたサイトの通りに作ってみたのですが、エラーばかり出ました。
(http://www.kumei.ne.jp/c_lang/cpp/cpp_38.htm)
includeの.hを消し、using namespace std;を付け足したのですが、
エラーが一杯出て実行できません。
どのように書き換えれば動くようになるでしょうか。


Blue  2006-02-01 05:21:23  No: 60627

どのヘッダの .h を消したのでしょうか?

#include <iostream.h>

#include <iostream>

#include <fstream.h>

#include <fstream>

でよいのですが、

#include <string.h>

#include <cstring>
です。(stringではない)

さらに
#include <conio.h>
は .h をとってはつかえません。
(Windows固有のものなので)


Blue  2006-02-01 05:35:29  No: 60628

参考
http://www1.kcn.ne.jp/~robe/cpphtml/html04/cpp04001.html

conio.hやwindows.hは標準ライブラリでないので .h は取れません。

というか「猫でも〜」でその後出てくる話題ですね。
第61章 標準ライブラリを使う 
http://www.kumei.ne.jp/c_lang/cpp/cpp_61.htm


すさのお  2006-02-05 10:06:12  No: 60629

さて、openメンバ関数ですが 
ifstream::open
void open( const char* szName, int nMode = ios::in, int nProt = filebuf::openprot );

(中略)

ifstream::close
void close();
これでクローズします。

上記の部分でどうしてもエラーが出てしまいます。
ここ以外はわかったのですが……。
ここができないと書き込んでも読み込めないのでどうにかならないでしょうか。

■ 構文エラー : 'void' は ';' によって先行されなければなりません。
■型指定子がありません
■'std::basic_ifstream<_Elem,_Traits>::open' は静的メンバではありません。
というエラーです。


επιστημη  2006-02-05 10:22:51  No: 60630

コード中に

> ifstream::open
> void open( const char* szName, int nMode = ios::in, int nProt = filebuf::openprot );

とか

> ifstream::close
> void close();

とか書いたんなら、エラーになってアタリマエ。

std::ifstream stream;
file.open("なんとか");
...
stream.close();

なら通るべ。


επιστημη  2006-02-05 10:23:43  No: 60631

っと、チョンボ。

× file.open("なんとか");
○ stream.open("なんとか");


Blue  2006-02-05 11:17:22  No: 60632

引用ならば、ちゃんと引用であることを示したほうがよいです。
# 一瞬なんの 「さて」だ? とおもった。

http://www.kumei.ne.jp/c_lang/cpp/cpp_38.htmより
> さて、openメンバ関数ですが 
> ifstream::open
void open( const char* szName, int nMode = ios::in, int nProt = filebuf::openprot );

(中略)

> ifstream::close
> void close();
> これでクローズします。

ここの、上記の行は解説用であって、それをソース中に記述しろということではありません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加