我有一个文本文件template.txt:
要:
| 1 | | 2 | | 3 |
| 4 |
| 5 |,| 6 | | 7 |
亲爱的| 1 | | 3 |: 你和| 3 |在C ++编程竞赛中,家庭可能是$ 1,000,000的幸运赢家!.....
我有一个文本文件database.txt:
先生|哈里|摩根| 1105 Main st |旧金山|加利福尼亚州| 95014 |
Dr. | John | Lee | 702 Ninth St Apt 4 | San Jose | CA | 95109 |
Miss | Evelyn | Garcia | 100 University Place | Ann Arbor | MI | 48105 |
我的代码可以正确显示database.txt中的第一行格式。
我在last.txt中的输出(由我自己创建):
要: 哈里摩根先生 1105 Main st 旧金山,加利福尼亚州95014 亲爱的摩根先生: 您和摩根家族可能是C ++编程竞赛中$ 1,000,000的幸运赢家!.....
我想在last.txt中将下两行显示为相同的格式。 我使用while循环,甚至创建一个新函数,它根本不起作用。 希望可以有人帮帮我!谢谢!
#include<iostream>
#include<fstream>
#include<string>
#include <cstdlib>
using namespace std;
void edit(ifstream& data, ifstream& temp, ofstream& last)
{
char x;
char x2, x3;
string arr[21];
string line;
for (int j = 1; j<21; j++)
{
getline(data, line, '|');
arr[j] = line;
cout << arr[j] << endl;
}
while (temp.get(x))
{
if ('|' == x)
{
temp.get(x2);
if (isdigit(x2))
{
temp.get(x3);
if ('|' == x3)
{
int n = x2 - '0';
//n+=7;
last << arr[n];
}
else
temp.putback(x3);
}
else
temp.putback(x2);
}
else
last << x;
}
}
int main()
{
ofstream last;
ifstream temp;
ifstream data;
temp.open("template.txt");
data.open("database.txt");
last.open("last.txt", fstream::app);
if (data.fail()) { return 0; }
edit(data, temp, last);
system("pause");
}