Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 27-06-2007, 01.39.24   #1
braian
Newbie
 
Registrato: 18-04-2007
Messaggi: 15
braian promette bene
[c] expected declaration or statement at end of input

quando compilo questo codice mi da l' errore "expected declaration or statement at end of input" relati vo alla linea dell' ultima parentesi graffa chiusa.
Qualcuno sa perchè??? éun progetto che devo consegnare a brevissimo

Codice:
#include <getopt.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
#include <mcheck.h>
#include <math.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define BUF (100*(sizeof(char)))




signed char a,b,c;
char dati[BUF+1];
int j,uguaglianza,letti,fd,ciclinumeri,numerostringhe,senzaparametri;
int stringainizialepresente=0;
int i = 1;
int dollarocomecarattere=0;
char* stringa;
char* stringainiziale;
char* provvisoria;
char* provvisoria2={'\0'};
int terminale;
int terminaletrovato=0;
char carattere;


typedef struct strutt1
{
	char* nomesimbolo;
	struct struttura1* simbolo;
	struct struttura2* sequenza;
}struttura1;

typedef struct strutt2
{	
	struct struttura2* altrisimboli;
	struct struttura3* simbolireali;
}struttura2;

typedef struct strutt3
{
	struct struttura3* altroreale;
	char* nometerminale;
	int terminale;
	int opzionale;
}struttura3;





int main(int argc,char* argv[])
{

	provvisoria=calloc(1,sizeof(char)*2);
	if(provvisoria==NULL)							
	{
		perror("errore in assegnazione di memoria calloc\n");
		exit(errno);
	}

	while (i<argc)
	{
		c=*argv[i];
		if(c=='-')
		{
			if(senzaparametri==1)
			{
				perror("inserita parametro o sequenza di parametri errata\n");
				exit(errno);
			}
			a=*((argv[i])+sizeof(char));
			if(isdigit(a)&&(i==1))
			{
				numerostringhe=strlen(argv[i]);
				stringa=calloc(1,(sizeof(char))*numerostringhe-1);
				if(stringa==NULL)
				{
					perror("errore in allocazione di memoria calloc\n");
					exit(errno);
				}
				for(ciclinumeri=1;ciclinumeri<numerostringhe;ciclinumeri=ciclinumeri+1)
				{	
					b=*((argv[i])+((sizeof(char))*ciclinumeri));
					if (!isdigit(b))
					{
						perror("inserito numero con carattere non consentito\n");
						exit(errno);
					}
					stringa[ciclinumeri-1]=b;
				}
				printf(stringa);//da togliere e inserire di prendere la sotosttringa dei numeri e salvarla su una variabile intera con atoi
			}
			else 
			{
				if((a=='s')&&((i==1)||(i==2)))
				{
					if(argv[i+1]!=NULL)
					{
						stringainiziale=argv[i+1];
				;		stringainizialepresente=1;
						i=i+1;
					}
					else
					{
						perror("manca il simbolo iniziale\n");
						exit(errno);
					}
				}
				else 
				{
					perror("parametro sconosciuto\n");
					exit(errno);
				}
			}
		}
		else 
		{	
			fd=open(argv[i],O_RDONLY);
			if(fd == -1)
			{
				perror("errore aprendo il file\n");
				exit(errno);
			}
			while((letti=read(fd,dati,BUF)>0))//magari aumetare un po' la dimenzione dei byte da leggere
			{
				if(letti==-1)
				{
					perror("errore in lettura\n");
					exit(errno);
				}
				leggi(dati);
			
				
			}	
			//quando arriva a 0 è alla fine del file	
			senzaparametri=1;
		}
		i=i+1;
	}
	
	return 0;
}


int leggi(char* dati)
{
	for(j=0;j<BUF;j=j+sizeof(char))
	{
		carattere=dati[j];
		//gestione stringa iniziale
		if((carattere=='$')&&(dollarocomecarattere==0))
		{
			dollarocomecarattere=1;
		}
		
		if((carattere=='=')&&(uguaglianza==2))
		{
			terminale=1;
			provvisoria2="";
		}
		if((carattere==' ')||(dati[j]=='\n'))
		{
			if((terminale==0)&&(dollarocomecarattere==1)&&(terminaletrovato==0))
			{
				if(dollarocomecarattere==1)
				{
					if(stringainizialepresente==0)
					{
						if((strcmp(provvisoria2,""))!=0)
						{
							stringainiziale=provvisoria2;
						}
						else
						{
							perror("simbolo iniziale non identificabile\n");
							exit(errno);
						}
					}
					//inserisco in lista1 provvisoria2
					dollarocomecarattere=0;
					terminaletrovato=1;
					provvisoria2="";
				}
				else
				{
					perror("mancanza del carattere $ all'inizio del simbolo\n");
					exit(errno);
				}
			}
			else if((terminale==1)&&(terminaletrovato==1))
			{
				if(strcmp(provvisoria2,"")==0)
				{
					j=j+1;
				}
				else
				{
					//inserisco in lista3
					if(dollarocomecarattere==1)
					{
						//non è un vero terminale
					}
					else 
					{
						//lo è
					}
				}
			}
		}
		else
		{
		if((carattere==':')&&(terminaletrovato==1))
		{
			if(uguaglianza==0)
			{
				uguaglianza=1;
			}
			else if(uguaglianza==1)
			{
				uguaglianza=2;	
			}
			else
			{
				uguaglianza=0;
			}
		}
		
		provvisoria[0]=dati[j];
		provvisoria[1]='\0';
		strcat(provvisoria2,provvisoria);
	}
	return 1;
}
braian non è collegato   Rispondi citando
Vecchio 27-06-2007, 01.50.41   #2
UG0_BOSS
Young Promise
 
Registrato: 04-02-2006
Messaggi: 2.114
UG0_BOSS promette bene
C'è una parentesi aperta senza essere chiusa nella funzione leggi... anche se non so dirti qual'è... a questa tarda ora non riesco a fare tanti ragionamenti (comunque per te dovrebbe essere facile capire qual'è)
UG0_BOSS non è collegato   Rispondi citando
Vecchio 27-06-2007, 01.54.37   #3
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
A occhio e croce a riga 237 va chiusa la parentesi dell'else In pratica lì vanno chiusi l'else e il for che inizia a riga 153, ma c'è una sola parentesi di chiusura
Dav82 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
HPING e tools sicurezza NS-1 Sicurezza&Privacy 18 31-03-2007 16.54.40
[Suse] vedere un dvd aelfar Linux e altri Sistemi Operativi 9 19-02-2007 23.06.27
[*buntu] Problemi con MP3 e Java [Risolto] Dr_House Linux e altri Sistemi Operativi 5 22-08-2006 21.11.44
[ansi c] ricevere input durante un ciclo senza bloccarlo Gergio Programmazione 2 22-03-2005 01.39.51
Problema con qtparted Nanri Linux e altri Sistemi Operativi 11 06-05-2004 16.38.27

Orario GMT +2. Ora sono le: 11.22.33.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.