编写一个程序,统计data.txt文件的行数,并将所有行前加上行号后写到data1.txt文件中。
算法提示:
行与行之间以回车符分隔,而getline()函数以回车符作为终止符。因此,可以采用getline()函数读取每一行,再用一个变量i计算行数。
(1)实现源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
int coutFile( char * filename, char * outfilename)
{
ifstream filein;
filein.open(filename,ios_base::in);
ofstream fileout;
fileout.open(outfilename,ios_base::out);
string strtemp;
int count=0;
while (getline(filein,strtemp))
{
count++;
cout<<strtemp<<endl;
fileout<<count<< " " <<strtemp<<endl;
}
filein.close();
fileout.close();
return count;
}
void main()
{
cout<<coutFile( "c:\\data.txt" , "c:\\data1.txt" )<<endl;
}
|
再来一个示例:
下面的C++代码将用户输入的信息写入到afile.dat,然后再通过程序读取出来输出到屏幕
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#include <fstream>
#include <iostream>
using namespace std;
int main ()
{
char data[100];
// open a file in write mode.
ofstream outfile;
outfile.open( "afile.dat" );
cout << "Writing to the file" << endl;
cout << "Enter your name: " ;
cin.getline(data, 100);
// write inputted data into the file.
outfile << data << endl;
cout << "Enter your age: " ;
cin >> data;
cin.ignore();
// again write inputted data into the file.
outfile << data << endl;
// close the opened file.
outfile.close();
// open a file in read mode.
ifstream infile;
infile.open( "afile.dat" );
cout << "Reading from the file" << endl;
infile >> data;
// write the data at the screen.
cout << data << endl;
// again read the data from the file and display it.
infile >> data;
cout << data << endl;
// close the opened file.
infile.close();
return 0;
}
|
程序编译执行后输出如下结果
1
2
3
4
5
6
7
|
$./a.out
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9
|
以上所述就是本文的全部内容了,希望大家能够喜欢。