cppファイル
#include "stdafx.h"
#include<iostream>
#include <string.h>
using namespace std;
char *p;
int counter=0;
db::db()
{
int i;
for(i=0;i<=9;i++){
data[i]=(char *)malloc(21);
}
}
db::~db()
{
int i;
for(i=0;i<=9;i++)
free(data[i]);
}
void db::entry(){
cout<<"名前を入れてください→";
cin>>p;
if(counter<=9){
strcpy(data[counter],p);
cout<<p<<endl;
counter++;
}else if(counter=9){
cout<<"データがいっぱいです"<<endl;
}
}
void db::prdb(){
int m;
for(m=0;m<=counter-1;m++){
cout<<data[m]<<endl;
}
}
void db::dreat(){
if(counter==0){
cout<<"一つも名前を登録していません"<<endl;
}else{
cout<<"消去する名前を入れてください→";
cin>>p;
if(p==NULL){
cout<<"入力された名前は登録されていません";
}else{
cout<<"消去しました"<<endl;
counter--;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
db a,b,c;
char work;
p=(char *)malloc(20);
for( ; ;){
cout<<"e:登録d:消去m:修正f:終了どれかを押してください→";
cin>>work;
if(work=='e'){
a.entry();
a.prdb();
}else if(work=='d'){
b.dreat();
}else if(work=='m'){
cout<<"修正する名前を入れてください→";
cin>>p;
}else if(work=='f'){
cout<<"プログラムを終了します"<<endl;
break;
}else{
cout<<"入力エラー"<<endl;
}
}
}
#pragma once
ヘッダーファイル
#include <stdio.h>
#include <tchar.h>
class db
{
public:
char *data[10];
db::db();
db::~db();
void entry();
void prdb();
void dreat();
};
登録、修正 消去 をしようとしているのですがうまくいきません><;
どこを直せばいいのでしょうか?
あと並べ替えもしたいのですがよろしければ教えてください。
どこが/どう うまくいかないか説明してください。
こういう質問はプログラムの説明とか一通り説明してほしい。
質問を理解するまでが苦痛。
ツイート | ![]() |