编写一个程序,统计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 |
以上所述就是本文的全部内容了,希望大家能够喜欢。