我附上了我的程序的完整源代碼,可以打開.txt
文件。它不會在cout << length
之後執行。我試圖通過使用一個數組來將.txt
文件信息存儲在內存中。爲什麼下一行不能執行C++
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
char filename[128];
char file[10][250];
int count;
int length;
string line;
int main()
{
int count = 0;
int length = 0;
cout << "Filename: ";
cin.clear();
cin.getline(filename, sizeof(filename));
string new_inputfile(filename);
ifstream inputfiles (new_inputfile.c_str());
if(!inputfiles.is_open())
{
cout << "File could not be opened. \n ";
}
else
{
for (int i=0; getline(inputfiles,line); i++)
{
length++;
}
cout << length;
// char file[length][250]; <- How can I create the array based on the length variable?
// CODE DOES NOT EXECUTE AFTER THIS.
while(!inputfiles.eof() && (count<10))
{
inputfiles.getline(file[count],250);
count++;
}
for(int i=0; i < count; i++)
{
cout << file[i] << endl;
}
}
inputfiles.close();
return 0;
}
而且,由於file[]
是char,比方說file[1]
包含的字符Name=Mike
,我怎麼脫光=
之前的一切。我只想要Mike
。我知道用string
,我可以用substr()
的方法,但我不知道用於char
。
爲什麼不直接使用'getline(cin,new_inputfile);'直接跳過中間人? – 2014-11-05 21:08:11
文件不是'char',它是一個'char數組'差別很大。 – deW1 2014-11-05 21:09:56
@NeilKirk你是什麼意思?我在哪裏放置getline(cin,new_inputfile)'? – user4167396 2014-11-05 21:10:21