[問題] C++ ifstream 問題

看板C_and_CPP (C/C++)作者 (j129008)時間15年前 (2010/08/14 11:57), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 問題如下: 有個二維陣列list[10][20] 和 ifstream InputFile; 為什麼InputFile(list[0],ifstream::in);有成功讀入file1.txt 但是在list[1]的時候就不成功了呢? 而且cout<<list[1]的時候也有成功印出file1.txt 希望得到的正確結果: 把const int line的值改成1的時候一樣可以讀取file1.txt 程式跑出來的錯誤結果: when line=1 , 只印出了file1.txt 卻無印出file1.txt的內容 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) #include<iostream> #include<fstream> using namespace std; ifstream InputFile; char list[10][20]; int j=0,file_num=3; const int line=0; int main(){ list[line][0]='f'; list[line][1]='i'; list[line][2]='l'; list[line][3]='e'; list[line][4]='1'; list[line][5]='.'; list[line][6]='t'; list[line][7]='x'; list[line][8]='t'; for(j=0;j<=file_num;j++){ InputFile.open(list[j],ifstream::in); cout<<list[j]; //檢查到底list[j]裡存了啥 while(InputFile.good())cout<<(char)InputFile.get(); getchar(); InputFile.close(); } } 補充說明: 怪怪.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.79.203

08/14 12:04, , 1F
for ( j = line ;.... )
08/14 12:04, 1F

08/14 12:04, , 2F
設定字串用 strcpy( list[ line ], "file1.txt" );
08/14 12:04, 2F

08/14 12:05, , 3F
另外在close前InputFile.clear()
08/14 12:05, 3F

08/14 12:05, , 4F
也許是後面多了別的非'\0'字元導致你開錯檔
08/14 12:05, 4F

08/14 12:07, , 5F
如果要在迴圈的 body 裡開檔關檔, 串流物件定義在裡面
08/14 12:07, 5F

08/14 12:07, , 6F
就好, 你的程式好像 C 語言
08/14 12:07, 6F
文章代碼(AID): #1CPXGP9i (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1CPXGP9i (C_and_CPP)