C 語言中,可以在通過傳遞檔案物件,然後通過這個函式讀取資料嗎

2021-08-18 02:31:07 字數 1216 閱讀 4079

1樓:

// cin和cout重定向不正確,應該如下修改

int main(int argc, char *argv)

2樓:

在main函式這裡,你居然這麼寫:

ifstream cin("in2.txt");

請問cin是什麼?cin在預設情況下是c++的一個全域性物件,你這麼寫就等於在main裡定義了一個區域性物件cin,你自己定義的cin把系統預設的那個cin給覆蓋了。可是這個區域性物件的作用域也就限於main函式了。

所以當你在另外一個函式中寫

cin>>start->value;

createdata函式中的這個cin是系統預設的cin,它從鍵盤讀入字元。

而如果你把createdata的**移動到了main函式中,你再寫cin>>start->value,用的是你自定義的那個區域性的cin,它從檔案讀入字元。

忠告:注意變數的作用域,注意不要覆蓋全域性變數。

還有就是你的類

class unit ;

建議寫成這樣

struct unit ;

純粹資料組成的類沒有什麼意義,建議寫成結構體意義更明確些。

c++中怎樣把一個檔案作為引數傳遞給函式

3樓:

/**功能: 從檔案中讀入資料

*日期: 2008.9.4

*輸入: filename---檔名

*輸出: datastorage--儲存資料的倉庫 由你確定*返回: 0----執行正確

* -1---遇到錯誤

*/int getdata(const char *filename,datastruct *datastorage)

/**開始讀資料

*/if(fread(datastorage,sizeof(*datastorage),1,fp)<1)

fclose(fp);

return 0;}

4樓:匿名使用者

可以把檔名作引數啊,用string或者char *不就行了.

5樓:匿名使用者

對,直接用檔案關聯的檔案流物件的引用就可以了。

f(fstream& file,...)

6樓:匿名使用者

f(fstream file, ...,)

C語言中關於檔案包函問題,c語言中有關檔案的問題

錯誤 重複宣告fun3 在 file1 中,include file3.c 表明在file1.c裡宣告file3.c一次 而 include file2.c 表明在file1.c裡宣告file2.c一次 在 file2 中,include file3.c 表明在file2.c裡宣告file3.c一次...

關於c語言中檔案修改的操作,關於C語言中檔案修改的操作!

使用檔案操作函式fopen即可建立檔案,使用檔案操作函式fprintf即可修改檔案內容。1 c語言標準庫提供了一系列檔案操作函式。檔案操作函式一般以f 單詞的形式來命名 f是file的簡寫 其宣告位於stdio.h標頭檔案當中。例如 fopen fclose函式用於檔案開啟與關閉 fscanf fg...

c語言中開啟檔案是什麼意思,C語言中開啟檔案是什麼意思

檔案 是指儲存在計算機外部儲存器中的資料的集合。計算機在處理檔案時,只要知道檔案的名字,就可以自動完成對檔案的查詢 訪問 刪除等各種操作。c語言將檔案看作是字元構成的序列,即字元流。其基本的儲存單位是位元組。c語言中的檔案,按照資料存放的形式分為兩類 一類是將資料當作乙個乙個字元,按照它的ascii...