作者j129008 (j129008)
看板C_and_CPP
標題[問題] C++ ifstream 問題
時間Sat Aug 14 11:57:11 2010
( *[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