salve,
ho un problema con un programma che sto srcivendo. Quando il programma genera i file member.txt e access_data.txt alla fine mi inserisce due caratteri in piu... chi mi puo spiegare perchè??
Questo è il codice:
codice:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <sstream>
using namespace std;
#define space ' '
#define newline '\n'
#define tab '\t'
//inizializing function
void main_page();
void reg_page();
void reg_write();
void access_page();
void access_write();
void pause();
void cls();
struct member {
char name[50];
char surname[50];
char year[4];
};
//global variable
bool memb;
//main function
int main() {
string syear;
member a;
member * p;
p = &a;
do {
//call the main page function
main_page();
//if you aren't a member...
if (memb!=1) {
//start registration step
reg_page();
reg_write();
memb=true;
//end registration step
}
//if you are a member...
access_page();
access_write();
memb=true;
}while (memb=false, memb=true);
}
//main page function
void main_page() {
cout << newline << newline << newline;
cout << tab << tab << "WELCOME TO LIBRARY";
cout << newline << newline << newline;
cout << tab << "ARE YOU A MEMBER? (1=si, 0=no) --> ";
cin >> memb;
}
//access page function
void access_page() {
cout << newline << newline << newline;
cout << "Remember that the access data will be save, so if you aren't a member is better don't continue";
cout << newline << newline;
cout << tab << tab << "ACCESS:";
cout << newline << newline;
}
//write access_data.txt
void access_write() {
member a;
member * p;
p = &a;
fstream f2;
f2.open ("access_data.txt", ios::out);
cout << tab << tab << "NAME: ";
cin >> p->name;
f2 << p->name << tab;
cout << tab << tab << "SURNAME: ";
cin >> p->surname;
f2 << p->surname << tab;
cout << tab << tab << "BORN DATE: ";
cin >> p->year;
(stringstream) p->year;
f2 << p->year;
f2 << newline;
f2.close();
}
//registration page function
void reg_page() {
cout << newline << newline << newline;
cout << tab << tab << "REGISTRATION:";
cout << newline << newline;
}
//write member.txt
void reg_write() {
member a;
member * p;
p = &a;
fstream f1;
f1.open("members.txt", ios::out);
cout << tab << tab << "NAME: ";
cin >> p->name;
f1 << p->name << tab;
cout << tab << tab << "SURNAME: ";
cin >> p->surname;
f1 << p->surname << tab;
cout << tab << tab << "BORN DATE: ";
cin >> p->year;
(stringstream) p->year;
f1 << p->year;
f1 << newline;
cout << newline << newline;
cout << "REGISTRATION COMPLETE";
f1.close();
}
void pause() {
system("PAUSE");
}
void cls() {
system("CLS");
}
grazie in anticipo