影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

標題: C/C++文件操作的簡單應(yīng)用 [打印本頁]

作者: lefttime    時間: 2007-8-25 09:26
標題: C/C++文件操作的簡單應(yīng)用
    在C/C++編寫程序過程中,我們通常會遇到個問題, 就是輸入測試數(shù)據(jù)多時,用手動輸入效率不高,而且出錯后又得重新來過 特別在ACM/ICPC這類比賽中,我們應(yīng)盡量減少手動測試數(shù)據(jù)輸入的時間,這時就會用到文件的輸入輸出流:
    來個簡單的例子,從文件in.txt中輸入兩個整數(shù),由小到大排序后輸出到out.txt中,用空格分開。在這里假設(shè)輸入文件和輸出文件都存在:


[C源程序]
#include <stdio.h> /*要使用文件輸入輸出流必須的頭文件*/

int main()
{
  FILE *in,*out;
  int a,b;
  in=fopen("in.txt","r");    /*以只讀方式打開in.txt文件*/
  out=fopen("out.txt","w");  /*以只寫方式打開out.txt文件*/
  while(fscanf(in,"%d%d",&a,&b)!=EOF) /*從in.txt文件中讀取a,b的值,直到文件結(jié)束為止*/
    if(a<b)
      fprintf(out,"%d %d\n",a,b);  /*向out.txt文件輸出結(jié)果*/
    else
      fprintf(out,"%d %d\n",b,a);
  fclose(in);    /*在C語言中必須加這一步,關(guān)閉文件防止文件被其它程序調(diào)用*/
  fclose(out);
  return 0;
}



[C++源程序]
#include <fstream> //要使用文件輸入輸出流必須的頭文件
using namespace std;

ifstream inf("in.txt"); //定義文件輸入流inf,并關(guān)聯(lián)到in.txt
ofstream ouf("out.txt"); //定義文件輸出流ouf,并關(guān)聯(lián)到out.txt
int main()
{
  int a, b;
  inf>>a>>b; //inf中輸入兩個整數(shù)
  if(a<b)
    ouf<<a<<' '<<b<<endl; //ouf輸出結(jié)果。
  else
    ouf<<b<<' '<<a<<endl;
  return 0;
}



上兩程序會得到同一結(jié)果:

如果in.txt的內(nèi)容為:
4 3

out.txt的內(nèi)容為:
3 4

由此可以看出,對文本文件的輸入輸出與標準輸入輸出從格式上講是一致的,只是需要定義一下文件輸入輸出流;C在定義時說明文件名后用戶還需手動打開和關(guān)閉文件,而C++只需說明文件名即可,文件的打開與關(guān)閉動作是C++自動完成的,用戶不必處理,這樣就不會出現(xiàn)忘記關(guān)閉文件而丟失數(shù)據(jù)的情況了。
看得出C++在這方面處理得讓程序員操作比較簡單,但在使用過程中,如果是對大數(shù)進行處理的話個人覺得用C效率會比較高,小范圍數(shù)據(jù)處理用C++比較方便 就看大家怎么用了

[ 本帖最后由 lefttime 于 2007-8-25 09:29 編輯 ]
作者: iwxiaot    時間: 2007-8-25 09:31
嗯,不錯,不看的話,差不多忘了




歡迎光臨 電子科大論壇-非清水河畔 (http://www.hallmarkedu.com/) Powered by Discuz! X3.4