【发布时间】:2014-04-12 15:24:46
【问题描述】:
我有问题。
我开始了一个 porgram,它将保存数据(姓名、姓氏等)并将它们保存到 .txt 文件中。问题是它覆盖了文件中的数据。我已经在 fstream 文件中写了 ios::app ,但没有任何区别。
你们能帮帮我吗?
我会给你代码,但它是西班牙语的,所以我想我不会帮忙。
提前致谢;)
#include <iostream>
#include <windows.h>
#include <fstream>
#include <string.h>
using namespace std;
const int salario_minimo = 550;
fstream userdata;
int i;
struct FUNCIONARIO{
char horario;
char categria;
int salario_inicial;
string nombre;
string apellido;
int id;
int salario_final;
};
FUNCIONARIO func[18];
int empleados;
int op;
int registrar(){
userdata.open("FUNCIONARIOS.txt");
cout << "Escriba el nombre del nuevo funcionario" << endl;
cin >> func[empleados].nombre;
cout <<"Escriba el apellido del nuevo funcionario"<<endl;
cin >> func[empleados].apellido;
cout<< "Especifique su puesto -Operario(O) o Gerente(G)"<<endl;
cin >> func[empleados].categria;
cout << "Especifique su horario -Manana(M), tarde(T) o noche(N)"<<endl;
cin >> func[empleados].horario;
i = empleados;
empleados++;
for(int o = 0; o < 18; o++){
int p = o++;
userdata << i << endl << empleados << endl << func[o].nombre << endl
<< func[o].apellido << endl << func[o].categria << endl
<< func[o].horario << endl << func[o].salario_inicial << endl
<< func[o].salario_final << endl;
userdata.close();
}//RESOLVER OVERWRITING URGENTE!!!!!
cout << "EMPLEADO NUMERO: " << empleados << endl;
cout << "NOMBRE: " << func[i].nombre << endl;
cout << "Apellido: " << func[i].apellido << endl;
cout << "EMPLEO: ";
switch (func[i].categria){
case 'G': cout << "GERENTE" << endl; break;
case 'O': cout << "OPERARIO" << endl; break;
default: break;
}
cout << "HORARIO: ";
switch(func[i].horario){
case 'M':
cout << "MANANA" << endl;
break;
case 'T':
cout << "TARDE" << endl;
break;
case 'N':
cout << "NOCHE" << endl;
break;
default:
break;
}
cout << "SALARIO INICIAL: " <<func[i].salario_inicial << endl;
cout << "SALARIO FINAL: " <<func[i].salario_final << endl;
system("PAUSE");
return 0;
}
int main(){
ifstream comprobador;
comprobador.open("FUNCIONARIOS.txt");
if (comprobador.fail()){
cout << "FILE NOT FOUND" << endl;
userdata.open("FUNCIONARIOS.txt", fstream::in | fstream::out | ios_base::app);
empleados = 0;
}else{
userdata.open("FUNCIONARIOS.txt",fstream::in | fstream::out | ios_base::app);
userdata >> i >> empleados;
userdata.close();
}
cout << "Numero Actual De Empleados:" << empleados << endl;
cout << "Bienvenido a BUSINESS MANAGEMENT SOFTWARE 1.0\n Por favor, seleccione una de estas opciones" << endl;
cout << "1.Registrar Un Nuevo Funcionario\n2.Ver Hojas De Pago\n3.Salir" << endl;
cin >> op;
switch (op){
case (1):
registrar();
break;
/*case 2:
mostrar();
break;*/
default:
cerr << "Please, Choose A Valid Option" << endl;
main();
break;
}
userdata.close();
return 0;
}
【问题讨论】:
-
好吧,我们需要查看代码以确定问题所在...
-
西班牙语很流行。
-
@pasztorpisti - 特别是在墨西哥和西班牙
-
@EdHeal :-) :-) :-) 来自维基百科:“西班牙语是美国英语为母语的人学习的最流行的第二语言。” en.wikipedia.org/wiki/Spanish_language
-
@Aleeo -- 你的母语是什么并不重要。无论您说西班牙语还是英语,C++ 关键字都是相同的。你不会说
char *p = nuevo char[10];吧?
标签: c++ file codeblocks fstream overwrite