使用ifstream和getline读取文件内容[c++]
2013-11-27 00:33
459 查看
使用ifstream和getline读取文件内容[c++]
假设有一个叫 data.txt 的文件, 它包含以下内容:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Fry: One Jillion dollars.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
[Everyone gasps.]
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Auctioneer: Sir, that's not a number.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
数据读取, 测试 。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
以下就是基于 data.txt 的数据读取操作:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include <iostream>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include
<fstream>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include <string>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using
namespace std;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void OutPutAnEmptyLine()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout<<"\n";
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//读取方式: 逐词读取, 词之间用空格区分
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//read data from the file,
Word By Word
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//when used in this manner, we'll get space-delimited bits of text from the file
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//but all of the whitespace that separated words (including newlines) was lost.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataFromFileWBW()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin("data.txt");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string s;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while( fin >> s )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Read from file:
" << s << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//If we were interested in preserving whitespace,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//we could read the file in
Line-By-Line using the I/O getline() function.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataFromFileLBLIntoCharArray()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin("data.txt");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
const int LINE_LENGTH =
100;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
char str[LINE_LENGTH];
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while( fin.getline(str,LINE_LENGTH) )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Read from file:
" << str << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//读取方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//If you want to avoid reading into character arrays,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//you can use the C++ string getline() function to read lines into strings
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataFromFileLBLIntoString()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin("data.txt");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string s;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while( getline(fin,s) )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Read from file:
" << s << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//带错误检测的读取方式
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//Simply evaluating an I/O object in a boolean context will return false
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//if any errors have occurred
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataWithErrChecking()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string filename =
"dataFUNNY.txt";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin( filename.c_str());
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if( !fin )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Error opening
" << filename << " for input" << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
exit(-1);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
int main()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataFromFileWBW();
//逐词读入字符串
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
OutPutAnEmptyLine();
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataFromFileLBLIntoCharArray();
//逐词读入字符数组
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
OutPutAnEmptyLine();
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataFromFileLBLIntoString();
//逐词读入字符串
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
OutPutAnEmptyLine();
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataWithErrChecking();
//带检测的读取
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return 0;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
输出结果为:
Read from file: Fry:
Read from file: One
Read from file: Jillion
Read from file: dollars.
Read from file: [Everyone
Read from file: gasps.]
Read from file: Auctioneer:
Read from file: Sir,
Read from file: that's
Read from file: not
Read from file: a
Read from file: number.
Read from file: 数据读取,
Read from file: 测试
Read from file: 。
Read from file: Fry: One Jillion dollars.
Read from file: [Everyone gasps.]
Read from file: Auctioneer: Sir, that's not a number.
Read from file: 数据读取, 测试 。
Read from file: Fry: One Jillion dollars.
Read from file: [Everyone gasps.]
Read from file: Auctioneer: Sir, that's not a number.
Read from file: 数据读取, 测试 。
Error opening dataFUNNY.txt for input
Press any key to continue
假设有一个叫 data.txt 的文件, 它包含以下内容:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Fry: One Jillion dollars.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
[Everyone gasps.]
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Auctioneer: Sir, that's not a number.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
数据读取, 测试 。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
以下就是基于 data.txt 的数据读取操作:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include <iostream>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include
<fstream>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
#include <string>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using
namespace std;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void OutPutAnEmptyLine()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout<<"\n";
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//读取方式: 逐词读取, 词之间用空格区分
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//read data from the file,
Word By Word
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//when used in this manner, we'll get space-delimited bits of text from the file
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//but all of the whitespace that separated words (including newlines) was lost.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataFromFileWBW()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin("data.txt");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string s;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while( fin >> s )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Read from file:
" << s << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//If we were interested in preserving whitespace,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//we could read the file in
Line-By-Line using the I/O getline() function.
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataFromFileLBLIntoCharArray()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin("data.txt");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
const int LINE_LENGTH =
100;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
char str[LINE_LENGTH];
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while( fin.getline(str,LINE_LENGTH) )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Read from file:
" << str << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//读取方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//If you want to avoid reading into character arrays,
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//you can use the C++ string getline() function to read lines into strings
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataFromFileLBLIntoString()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin("data.txt");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string s;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while( getline(fin,s) )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Read from file:
" << s << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//带错误检测的读取方式
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//Simply evaluating an I/O object in a boolean context will return false
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//if any errors have occurred
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
void ReadDataWithErrChecking()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string filename =
"dataFUNNY.txt";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ifstream fin( filename.c_str());
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if( !fin )
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
cout <<
"Error opening
" << filename << " for input" << endl;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
exit(-1);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
int main()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataFromFileWBW();
//逐词读入字符串
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
OutPutAnEmptyLine();
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataFromFileLBLIntoCharArray();
//逐词读入字符数组
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
OutPutAnEmptyLine();
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataFromFileLBLIntoString();
//逐词读入字符串
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
OutPutAnEmptyLine();
//输出空行
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ReadDataWithErrChecking();
//带检测的读取
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return 0;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
输出结果为:
Read from file: Fry:
Read from file: One
Read from file: Jillion
Read from file: dollars.
Read from file: [Everyone
Read from file: gasps.]
Read from file: Auctioneer:
Read from file: Sir,
Read from file: that's
Read from file: not
Read from file: a
Read from file: number.
Read from file: 数据读取,
Read from file: 测试
Read from file: 。
Read from file: Fry: One Jillion dollars.
Read from file: [Everyone gasps.]
Read from file: Auctioneer: Sir, that's not a number.
Read from file: 数据读取, 测试 。
Read from file: Fry: One Jillion dollars.
Read from file: [Everyone gasps.]
Read from file: Auctioneer: Sir, that's not a number.
Read from file: 数据读取, 测试 。
Error opening dataFUNNY.txt for input
Press any key to continue
相关文章推荐
- 使用ifstream和getline读取文件内容[c++]
- C++ 使用ifstream和getline读取文件内容
- C++ 使用ifstream和getline读取文件内容
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[转自c++博客]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容 c++
- 使用ifstream和getline读取文件内容 c++
- 使用ifstream和getline读取文件内容[c++]
- 使用ifstream和getline读取文件内容[c++]
- C++ 使用ifstream和getline读取txt文件内容
- 使用ifstream和getline读取文件内容[c++]