C++ vector ファイル保存??? – プログラミング – Home

C++ vector ファイル保存??...
 
通知
すべてクリア

[解決済] C++ vector ファイル保存???

固定ページ 1 / 3

anri
 anri
(@anri)
ゲスト
結合: 18年前
投稿: 33
Topic starter  

またまたおねがいします。

C++ .NET 2003 MFC

void CoekakiView::OnDestroy()//終了時書き込み
{
CView::OnDestroy();

// TODO : ここにメッセージ ハンドラ コードを追加します。
CStdioFile fin;

if(!fin.Open(Line.txt,CFile::modeCreate | CFile::modeWrite |
CFile::typeBinary)){
AfxMessageBox(読込みファイを開けません);
return;
}

fin.Write(Ve_myPic,sizeof(Ve_myPic));

fin.Close();
}
}
}


引用未解決
トピックタグ
anri
 anri
(@anri)
ゲスト
結合: 18年前
投稿: 33
Topic starter  

またまたまちがえました。

vector<Picture> Ve_myPic;

void CoekakiView::OnDestroy()//終了時書き込み
{
  CView::OnDestroy();

// TODO : ここにメッセージ ハンドラ コードを追加します。
  CStdioFile fin;

  if(!fin.Open(Line.txt,CFile::modeCreate | CFile::modeWrite |
CFile::typeBinary)){
    AfxMessageBox(読込みファイを開けません);
    return;
  }
   
  fin.Write(Ve_myPic,sizeof(Ve_myPic));
  fin.Close();

}

というような感じなんですが じっこうすると

引数を'std::vecotor<_Ty>'から'const void *'に変換できません

ってでるんですが・・・

どうしたらよいでしょうか?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

>  fin.Write(Ve_myPic,sizeof(Ve_myPic));

できませんこんなこと。


返信引用
anri
 anri
(@anri)
ゲスト
結合: 18年前
投稿: 33
Topic starter  

では
vector で宣言したものを保存するにはどうしたらよいですか?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

…てゆっかデタラメぢゃん。

CStdioFile fin;
fin.Open(Line.txt,CFile::modeCreate | CFile::modeWrite | CFile::typeBinary)

ファイル名がLine.txtでありながらバイナリ・オープンで、しかもCStdioFile?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> vector で宣言したものを保存するにはどうしたらよいですか?

ならば逆に質問。
Picture data[N] をファイルに保存/復元するにはどうしますか?


返信引用
anri
 anri
(@anri)
ゲスト
結合: 18年前
投稿: 33
Topic starter  

////・・・でたらめなのはごめんなさい

本をみながらサンプルプログラムをつぎはぎしながらやってるんで・・・orz
初心者なんで・・・ゆるしてください(T_T)

>ファイル名がLine.txtでありながらバイナリ・オープンで、しかもCStdioFile?

ってかんじからすると・・・

>Picture data[N] をファイルに保存/復元するにはどうしますか?

は Picure・オープンで開いてかきこみ・・・

正解?不正解?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

えーと、もしかして基本的な言語知識もなしに
むやみやたらとプログラミングしようとしていませんか?

せめて、fin.Write(Ve_myPic,sizeof(Ve_myPic));が不味いと言うことがわかる程度の
知識はないと難しいと思いますけれど。

C++言語の知識がないのであれば、ちゃんと言語知識の勉強をしましょう。
あと、C++言語の知識がないのであれば、MFCを使うのはまだ早いです。
MFCを使わずにコンソールアプリで純粋にC++言語の勉強をする事を
お勧めします。
VC++の勉強をするのはその後で良いと思いますよ。
教科書はC++言語の教科書を使う事が大事です。
いきなりVC++の教科書を使っても多分理解できません。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

あと、サンプルプログラムをつぎはぎしながら作るのは止めませんが、
使っているサンプルの中身を理解していないのであれば、
全く意味が無いので止めた方が良いです。
サンプルプログラムを参考にしてプログラムすると言うのは
内容を理解して自分のプリグラムに取り込むということであって
継ぎ接ぎで作ると言う事ではありません。
勉強にもならないし、へんな覚え方をすると逆に後々苦労します。
順を追って勉強する事をお勧めします。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

がーっ、誤字。

誤)
> 内容を理解して自分のプリグラムに取り込むということであって

正)
内容を理解して自分のプログラムに取り込むということであって


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

>>Picture data[N] をファイルに保存/復元するにはどうしますか?
> は Picure・オープンで開いてかきこみ・・・
> 正解?不正解?

は? Pictureはアナタが定義した構造体ちゃうのん?
# それともどこぞの馬の骨が作ったもの?
少なくとも僕が作ったものじゃないから僕は読み書きできません。

Picutureをファイルに読み書きできなきゃPictureの集合体である
vector<Picture>を読み書きできるわけないやん。

なので、
「vector<Picture>を読み書きするため、Pictureの読み方/書き方を教えてくれ」
と訊いておるのですが。


返信引用
anri
 anri
(@anri)
ゲスト
結合: 18年前
投稿: 33
Topic starter  

すみません まったくそのとおりだとおもいますが・・・
今は時間がなく・・・課題はおわらせなければなりません

知識はC言語しかありません。

できれば やり方をおしえてください


返信引用
anri
 anri
(@anri)
ゲスト
結合: 18年前
投稿: 33
Topic starter  

////ごめんなさい・・・

え~と

typedef struct Picture{ //(保存する)
int lFigure; //線か図形を判断する 0:線 1~:図形
int nPoints; //各線の点の数
vector<POINT> ptLines; //
//線:各点の座標データ 図:配列番号[0]
int lKinds; //ペンの種類を保存する
int pTns; //ペンの太さを保存
COLORREF pColors; //ペンの色を保存
}Picture;

Picture のなかみはこんなかんじです。

vector にするまえは

struct Picture myPic[1000];

fin.Write(myPic,sizeof(myPic));

だったのでうまくいっていました。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 今は時間がなく・・・課題はおわらせなければなりません

それはアナタの都合。知ったことか。

> 知識はC言語しかありません。
> できれば やり方をおしえてください

だからぁ、教えてやるから Picture をファイルに書く/読む コードを提示してください。 Cで
いいから。
それがあれば vector<Picture> を読み書きできるから。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

学校の課題なら今の知識で無理やり課題を終わらせても無意味だと思うし、
何よりC言語の知識しかないのにC++言語でやろうというのが・・・。

会社の課題だったとしても理解しないで課題だけ出しても無意味ですしね。

と言うわけで私は降ります。(と言うほどアドバイスはしていませんけれど)

本来ならわからない事を先生とか課題を出している人に言って
ちゃんと勉強しなおすべきだと思いますよ。
今のままで突っ走っても良い事ありません。


返信引用
固定ページ 1 / 3

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました