全部博文(10)
分类: C/C++
2009-06-01 13:30:49
转自:http://hi.baidu.com/xaioxain/blog/item/f08d3a4c5003c2ffd72afce3.html
假设有一个叫 data.txt
的文件, 它包含以下内容:
Fry: One Jillion dollars.
[Everyone gasps.]
Auctioneer: Sir, that's not a number.
数据读取, 测试 。
以下就是基于 data.txt 的数据读取操作:
#include
<
iostream
>
#include
<
fstream
>
#include
<
string>
using
namespace
std;
//
输出空行
void
OutPutAnEmptyLine()
{
cout
<<
"
\n
"
;
}
//
读取方式: 逐词读取, 词之间用空格区分
//
read data from the file, W
ord B
y W
ord
//
when used in this manner, we'll get space-delimited bits of text from the file
//
but all of the whitespace that separated words (including newlines) was lost.
void
ReadDataFromFileWBW()
{
ifstream fin(
"
data.txt
"
);
string
s;
while
( fin
>>
s )
{
cout
<<
"
Read from file:
"
<<
s
<<
endl;
}
}
//
读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分
//
If we were interested in preserving whitespace,
//
we could read the file in L
ine-B
y-L
ine using the I/O getline() function.
void
ReadDataFromFileLBLIntoCharArray()
{
ifstream fin(
"
data.txt
"
);
const
int
LINE_LENGTH
=
100
;
char
str[LINE_LENGTH];
while
( fin.getline(str,LINE_LENGTH) )
{
cout
<<
"
Read from file:
"
<<
str
<<
endl;
}
}
//
读取方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分
//
If you want to avoid reading into character arrays,
//
you can use the C++ string getline() function to read lines into strings
void
ReadDataFromFileLBLIntoString()
{
ifstream fin(
"
data.txt
"
);
string
s;
while
( getline(fin,s) )
{
cout
<<
"
Read from file:
"
<<
s
<<
endl;
}
}
//
带错误检测的读取方式
//
Simply evaluating an I/O object in a boolean context will return false
//
if any errors have occurred
void
ReadDataWithErrChecking()
{
string
filename
=
"dataFUNNY
.txt
"
;
ifstream fin( filename.c_str());
if
(
!
fin )
{
cout
<<
"
Error opening
"
<<
filename
<<
"
for input
"
<<
endl;
exit(
-
1
);
}
}
int
main()
{
ReadDataFromFileWBW();
//
逐词读入字符串
OutPutAnEmptyLine();
//
输出空行
ReadDataFromFileLBLIntoCharArray();
//
逐词读入字符数组
OutPutAnEmptyLine();
//
输出空行
ReadDataFromFileLBLIntoString();
//
逐词读入字符串
OutPutAnEmptyLine();
//
输出空行
ReadDataWithErrChecking();
//
带检测的读取
return
0
;
}
输出结果为:
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