看板 C_and_CPP 關於我們 聯絡資訊
( *[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
winest:for ( j = line ;.... ) 08/14 12:04
loveme00835:設定字串用 strcpy( list[ line ], "file1.txt" ); 08/14 12:04
winest:另外在close前InputFile.clear() 08/14 12:05
loveme00835:也許是後面多了別的非'\0'字元導致你開錯檔 08/14 12:05
loveme00835:如果要在迴圈的 body 裡開檔關檔, 串流物件定義在裡面 08/14 12:07
loveme00835:就好, 你的程式好像 C 語言 08/14 12:07