c++ txt파일 입출력
#include
#include
#include
using namespace std;
void writeFriends(FILE *m, int n){
string name;
string PhoneNumber;
string Address;
for (int i = 1; i <= n; i++){
cout << "Name : ";
cin >> name;
cout << "Phone Number : ";
cin >> PhoneNumber;
cout << "Address : " ;
cin >> Address;
cout << endl;
}
//void readFriends(fstream a,int n){
}
void main(){
FILE *fp; // file descriptor in C
fstream inf; // file stream in C++
int numOfFriends;
cout << "How many friends? ";
cin >> numOfFriends;
cout << endl;
fopen_s(&fp, "c:\\Users\\pc-pc\\documents\\visual studio 2010\\Projects\\hw111\\hw111\\myfriends.txt", "w+");
writeFriends(fp, numOfFriends);
fclose(fp);
inf.open("c:\\Users\\pc-pc\\documents\\visual studio 2010\\Projects\\hw111\\hw111\\myfriends.txt");
//readFriends(inf, numOfFriends);
inf.close();
}
안녕하세요 제가 과제중인데 이해가 잘안가서 질문드립니다. 이 코드가 뭐냐면은 몇명의 친구가 있나물어보고 그 수만큼의 사람들의 이름 핸드폰번호 주소를 입력해서 txt파일에 저장하는 코드인데요 저기 writeFriends 함수에서 입력을 받으면 이게 실행창에만 입력이되고 txt파일에는 저장이 되지 않더군요 저기 FILE *m을 인자로 받는 코드를 한줄정도 써서 txt파일에 써야할것같은데 제가 그걸 몰라서....ㅜㅜ c에는 fprintf 이거 쓰면 되던데 저기서는 어떻게 해야하나요??
string으로 값을 받기 때문에 const char * 으로의 형변환이 필요합니다.
C의 FILE 과 C++의 fstream을 둘다 사용할 수 있는지의 여부를 테스트하는 심플한 코드이군요.
실행창에만 입력되고 저장이 안되는 이유는 저장하는 코드가 없기 때문입니다.
fprintf 는 string인자를 받는 것이 아니기 때문에 형변환은 필수이고요.
이 싸이트는 코드 붙혀넣는게 안습이네요. 첨부 파일 참조하세요.
using namespace std;
void writeFriends(FILE *m, int n) {
string name; string PhoneNumber; string Address;
const char *char_name = name.c_str(); const char *char_address = Address.c_str(); const char *char_PhoneNumber = PhoneNumber.c_str();
for (int i = 1; i <= n; i++) {
cin.ignore();
cout << “Name : “; getline(cin, name);
cout << “Phone Number :”; getline(cin, PhoneNumber);
cout << “Address : “; getline(cin, Address);cout << endl;
fprintf(m, “%s, %s, %s\n”, char_name, char_PhoneNumber, char_address); }
//void readFriends(fstream a,int n){
}
void main() { FILE *fp; // file descriptor in C fstream inf; // file stream in C++
int numOfFriends;
cout << “How many friends? “;
cin >> numOfFriends;
fopen_s(&fp, “c:\\test\\text.txt”, “w+”); writeFriends(fp, numOfFriends); fclose(fp);
cout << “file closed” << endl; system(“pause”); inf.open(“c:\\test\\text2”); //readFriends(inf, numOfFriends); inf.close();
}
감사합니다!!
죄송한데 혹시 readFriends도 어떻게 짜야 하는지 알수있을까요..?
!!
void readFriends(fstream &inf, int n)
{
string str;
int line{ 0 };
while (line != n)
{
getline(inf, str);
cout << str << '\n';
line++;
}
cout << endl;
}
그리고 메인 함수 다시 정리요.
void main()
{
FILE *fp; // file descriptor in C
fstream inf; // file stream in C++
int numOfFriends;
cout << "How many friends? ";
cin >> numOfFriends;
fopen_s(&fp, "c:\\test\\text.txt", "w+");
writeFriends(fp, numOfFriends);
fclose(fp);
cout << "file closed" << endl;
inf.open("c:\\test\\text.txt");
readFriends(inf, numOfFriends);
inf.close();
system("pause");
}
댓글 달기