Enviado em 20/05/2015 - 20:02h
OI pessoal sou novo na comunidade e estou tendo dificuldades com um trabalho em c++ que é criar um arquivo txt ANOTAÍ em Lista, pois não estou conseguindo cortar a string com substring, eu teria que digitar o INSERE ('Nota da Prova de BD-I', 'Tirei nota 10') e deverá ser separado em sub string, o INSERE chama a função de insrerir, O 'Nota da Prova de BD-I entra com como titulo e Tirei nota 10 entra como texto, se voces puderem me ajudar eu agradeço, estou enviando o codigo que comecei a montar. desde já agradeço.
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
int incremento = 1;
using namespace std;
struct lista{
int codigo;
char titulo[101];
char texto[501];
struct lista *prox;
};
typedef struct lista *Lista;
Lista inicializa(void){
return NULL;
}
Lista insere (Lista p){
Lista novo = (Lista)malloc(sizeof(lista));
Lista aux = p;
Lista aux2 = aux;
novo->codigo = incremento;
incremento++;
getchar();
cout <<" Digite um titulo: ";
gets(novo->titulo);
cout << " Digite um texto : ";
gets(novo->texto);
novo->prox =NULL;
if(aux == NULL)
return novo;
else{
while(aux->prox != NULL)
aux = aux->prox;
aux->prox = novo;
return p;
}
}
void imprime(Lista p){
Lista aux = p;
if(p == NULL){
cout << " Lista vazia\n";
return ;
}
while(aux != NULL){
cout << " Codigo: " << aux->codigo;
cout << "\n";
cout << " Titulo: " << aux->titulo << "\n Texto: " << " " << aux->texto;
cout << "\n\n";
aux = aux->prox;
}
}
bool vazia (Lista* l){
return(l == NULL);
}
Lista altera (Lista l){
Lista ant = NULL;
Lista p = l;
int codigo;
char titulo[501], titulo2[501];
cout << " Digite o codigo que deseja alterar: ";
cin >> codigo;
while(p != NULL && p->codigo != codigo){
ant = p;
p = p->prox;
}
if(p == NULL){
cout << " Comando nao encontrado";
return l;
}
cout << " Codigo encontrado: ";
cout << " Codigo: " << codigo << "\n" << " " << p->titulo << p->texto;
cout << "\n\n";
cout << " Digite um novo titulo: ";
getchar();
gets(p->titulo);
cout << " Digite um novo texto : ";
gets(p->texto);
return l;
}
Lista exclui (Lista l){
Lista ant = NULL;
Lista p = l;
int codigo;
cout << " Digite o codigo que deseja remover: ";
cin >> codigo;
while(p != NULL && p->codigo != codigo){
ant = p;
p = p->prox;
}
if(p == NULL)
return l;
if(ant == NULL){
l = p->prox;
}
else{
ant->prox = p->prox;
}
free(p);
return l;
}
int main(void){
Lista lista = inicializa();
string comando;
cout << "\n\t\t ANOTAI\n\n\n";
while(comando != "SAIR"){
cout << "\n Linha de comando: ";
//cout << "\n 1 - INSERE \n 2 - ATUALIZA \n 3 - DELETA \n 4 - SELECIONA \n 0 - SAIR\n\n";
cin >> comando;
if (comando == "INSERE"){
lista = insere (lista);
}else if(comando == "ATUALIZA"){
lista = altera(lista);
}else if (comando == "DELETA"){
lista = exclui(lista);
}else if (comando == "SELECIONA"){
imprime(lista);
}else {
cout << " Comando invalido";
}
}
return(0);
}
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
int incremento = 1;
using namespace std;
struct lista{
int codigo;
char titulo[101];
char texto[501];
struct lista *prox;
};
typedef struct lista *Lista;
Lista inicializa(void){
return NULL;
}
Lista insere (Lista p){
Lista novo = (Lista)malloc(sizeof(lista));
Lista aux = p;
Lista aux2 = aux;
novo->codigo = incremento;
incremento++;
getchar();
cout <<" Digite um titulo: ";
gets(novo->titulo);
cout << " Digite um texto : ";
gets(novo->texto);
novo->prox =NULL;
if(aux == NULL)
return novo;
else{
while(aux->prox != NULL)
aux = aux->prox;
aux->prox = novo;
return p;
}
}
void imprime(Lista p){
Lista aux = p;
if(p == NULL){
cout << " Lista vazia\n";
return ;
}
while(aux != NULL){
cout << " Codigo: " << aux->codigo;
cout << "\n";
cout << " Titulo: " << aux->titulo << "\n Texto: " << " " << aux->texto;
cout << "\n\n";
aux = aux->prox;
}
}
bool vazia (Lista* l){
return(l == NULL);
}
Lista altera (Lista l){
Lista ant = NULL;
Lista p = l;
int codigo;
char titulo[501], titulo2[501];
cout << " Digite o codigo que deseja alterar: ";
cin >> codigo;
while(p != NULL && p->codigo != codigo){
ant = p;
p = p->prox;
}
if(p == NULL){
cout << " Comando nao encontrado";
return l;
}
cout << " Codigo encontrado: ";
cout << " Codigo: " << codigo << "\n" << " " << p->titulo << p->texto;
cout << "\n\n";
cout << " Digite um novo titulo: ";
getchar();
gets(p->titulo);
cout << " Digite um novo texto : ";
gets(p->texto);
return l;
}
Lista exclui (Lista l){
Lista ant = NULL;
Lista p = l;
int codigo;
cout << " Digite o codigo que deseja remover: ";
cin >> codigo;
while(p != NULL && p->codigo != codigo){
ant = p;
p = p->prox;
}
if(p == NULL)
return l;
if(ant == NULL){
l = p->prox;
}
else{
ant->prox = p->prox;
}
free(p);
return l;
}
int main(void){
Lista lista = inicializa();
string comando;
cout << "\n\t\t ANOTAI\n\n\n";
while(comando != "SAIR"){
cout << "\n Linha de comando: ";
//cout << "\n 1 - INSERE \n 2 - ATUALIZA \n 3 - DELETA \n 4 - SELECIONA \n 0 - SAIR\n\n";
cin >> comando;
if (comando == "INSERE"){
lista = insere (lista);
}else if(comando == "ATUALIZA"){
lista = altera(lista);
}else if (comando == "DELETA"){
lista = exclui(lista);
}else if (comando == "SELECIONA"){
imprime(lista);
}else {
cout << " Comando invalido";
}
}
return(0);
}