c++中读文件的问题
我想用ifsteam仅仅读取文件的第一行
请问下怎么实现呢
[解决办法]
得到的东西.再分析即可.
[解决办法]
int main()
{
ifstream infile;
string filename;
cout < < "Please enter the file name: ";
cin > > filename;
infile.open(filename.c_str());
string line;
getline(infile, line, '\n ');
infile.close();
vector <string> wordsOfLine;
string::size_type pos = 0, prev_pos =0;
string word;
while ((pos = line.find_first_of( ' ', pos)) != string::npos)
{
word = line.substr(prev_pos, pos - prev_pos);
prev_pos = ++pos;
wordsOfLine.push_back(word);
}
wordsOfLine.push_back(line.substr(prev_pos, pos - prev_pos));
size_t numOfLine = wordsOfLine.size();
cout < < numOfLine < < "words " < < endl;
}
[解决办法]
可以设置标志
我用FILE实现
例如:
FILE *fp;
char c;
int iCount;
fp = fopen( "file.txt ", "r ");
c = fgetc(fp);
while (c != '\0 ')
{
iCount++;
c = fgetc(fp);
}
这样就可以了.
用ifsteam也可以使用类似的方法
[解决办法]
主要是想判断第一行有几个单词
---------------------------------------
读完一行之后,你再自己解析一下字符串就可以了,不必在读的时候就确定的。