Ⅰ 求標准C語言讀寫文件的源代碼
C語言讀寫文件 都是三個步驟
1.獲取文件描述符
2.對文件讀寫
3.關閉文件
對文件讀操作
//獲取文件指針
FILE*pFile=fopen("1.txt","w");//文件打開方式如果原來有內容也會銷毀//向文件寫數據
fwrite("hello",//要輸入的文字
1,//文字每一項的大小以為這里是字元型的就設置為1如果是漢字就設置為4
strlog("hello"),//單元個數我們也可以直接寫5
pFile//我們剛剛獲得到的地址
);
//fclose(pFile);//告訴系統我們文件寫完了數據更新,但是我們要要重新打開才能在寫
fflush(pFile);//數據刷新數據立即更新
對文件寫操作
FILE*pFile=fopen("1.txt","r");//獲取文件的指針
char*pBuf;//定義文件指針
fseek(pFile,0,SEEK_END);//把指針移動到文件的結尾,獲取文件長度
intlen=ftell(pFile);//獲取文件長度
pBuf=newchar[len+1];//定義數組長度
rewind(pFile);//把指針移動到文件開頭因為我們一開始把指針移動到結尾,如果不移動回來會出錯
fread(pBuf,1,len,pFile);//讀文件
pBuf[len]=0;//把讀到的文件最後一位寫為0要不然系統會一直尋找到0後才結束
MessageBox(pBuf);//顯示讀到的數據
fclose(pFile);//關閉文件
Ⅱ c++如何獲取網頁內容,要控制台程序就行;越簡單越好;就範例輸出百度的源碼吧!謝了急用!
我有,是MFC工程,留郵箱我發給你
關鍵代碼在這里
void CGetPublicIPDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CGetPublicIPDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
BOOL CGetPublicIPDlg::GetFromWeb(LPSTR pURL, LPSTR SaveAsFilePath)
{
CInternetSession session; //會話期對象)
CHttpConnection* pServer = NULL; //指向伺服器地址(URL)
CHttpFile * pHttpFile = NULL;
CString strServerName; //伺服器名
CString strObject; //查詢對象名(http文件)
INTERNET_PORT nPort; //埠
DWORD dwServiceType; //服務類型
DWORD dwHttpRequestFlags = //請求標志
//INTERNET_FLAG_EXISTING_CONNECT
INTERNET_FLAG_NO_AUTO_REDIRECT;
const TCHAR szHeaders[] = _T("Accept:text/*\r\nUser-Agent:Client\r\n");
BOOL OK=AfxParseURL( //詞法分析
pURL, //被分析URL串
dwServiceType, //服務類型,ftp,http等
strServerName, //伺服器名
strObject, //URL中被查詢對象
nPort ); //URL指定的埠,可能為空
OK=OK && //本例只考慮http協議
(dwServiceType ==
INTERNET_SERVICE_HTTP);
if (!OK)
{ AfxMessageBox("URL出錯"); //報錯
return false;
}
pServer = session.GetHttpConnection(strServerName, nPort); //獲得伺服器名
pHttpFile = pServer-> OpenRequest( CHttpConnection::HTTP_VERB_GET,strObject, NULL, 1, NULL, NULL,dwHttpRequestFlags);
//向伺服器發送請求,建立http連接,
//建立本機上的http文件指針
pHttpFile->AddRequestHeaders(szHeaders);
pHttpFile->SendRequest(); //發送請求
CStdioFile f; //輸出文件對象
if( !f.Open( //打開輸出文件
SaveAsFilePath, CFile::modeCreate | CFile::modeReadWrite | CFile::typeText ) )
{
MessageBox( "Unable to open file");
return false;
}
//下面將檢索結果保存到文件上
TCHAR szBuf[1024]; //緩存
while (pHttpFile->ReadString(szBuf, 1023))
f.WriteString( szBuf );
f.Close(); //善後工作
pHttpFile ->Close();
pServer ->Close();
if (pHttpFile != NULL) delete pHttpFile;
if (pServer != NULL) delete pServer;
session.Close();
/* while (f.ReadString( szBuf, 1023 ))
pHttpFile->WriteString(_T("123"));
f.Close(); //善後工作
pHttpFile ->Close();
pServer ->Close();
if (pHttpFile != NULL) delete pHttpFile;
if (pServer != NULL) delete pServer;
session.Close(); */
return true;
}
void CGetPublicIPDlg::OnOK()
{
// TODO: Add extra validation here
GetFromWeb("http://www..com","d:\\ip.txt");
CDialog::OnOK();
}