全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1026
推到 Plurk!
推到 Facebook!

問個fstream使用全域變數存檔問題

尚未結案
swordsman
一般會員


發表:8
回覆:22
積分:6
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-03 19:37:09 IP:211.72.xxx.xxx 未訂閱
請問一下,我想以此方式在Edit1中輸入檔名存檔,哪裡有問題啊? //-------------------------------------------------------------------- #include  #pragma hdrstop #include "t.h" #include #include #include //for file function String file_name; ofstream outfile(file_name.c_str()); //-------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //-------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { file_name=Edit1->Text; String a; a=Memo1->Text; outfile<Text=file_name; //檢查file_name,但為何無字串? } //--------------------------------------------------------------------
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-03 22:30:00 IP:61.224.xxx.xxx 未訂閱
我試過了,您的程式,語法上沒有問題 Compile 可以過,但有很大的邏輯問題!
引言: 請問一下,我想以此方式在Edit1中輸入檔名存檔,哪裡有問題啊?
//--------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "t.h"
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>  //for file function    String file_name;
// 這個 file_name 是全域變數,一開始的內容是「空白」的
ofstream outfile(file_name.c_str());
// 這樣指定,在程式一啟動時就已建出 outfile 並指定其檔名了!!
// 而其檔名是「空白」因為 file_name 一開始也是空白!!    //--------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//--------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{      file_name=Edit1->Text;
  // 在此指定 file_name 與 outfile 一點關係都沒有,因為在之前已經指定了      String a;
  a=Memo1->Text;
  outfile << a.c_str() << endl;      Memo2->Text=file_name;  //檢查file_name,但為何無字串?
  // 沒有問題,Memo2 可以顯示出 Edit1 的內容    }
//--------------------------------------------------------------------
改成如下的 code 即可正常存檔
//---------------------------------------------------------------------------    #include <vcl.h>
#pragma hdrstop    #include "Unit1.h"
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>  //for file function
//----------------------------------------------------------------------------//
#pragma package(smart_init)
#pragma resource "*.dfm"    String file_name;    TForm1 *Form1;
//----------------------------------------------------------------------------//
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//----------------------------------------------------------------------------//    void __fastcall TForm1::Button1Click(TObject *Sender)
{
  file_name=Edit1->Text;
  String a;
  a=Memo1->Text;
  ofstream outfile(file_name.c_str());  // 此時依 file_name 為檔名建立檔案
  outfile << a.c_str() << endl;
  Memo2->Text=file_name;
}
//----------------------------------------------------------------------------//
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-18 4:47:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!