[C] IDE
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- DaD
- Linux 2.x

- Messaggi: 371
- Iscritto il: mer 7 feb 2007, 18:19
- Nome Cognome: Antonio Barra
- Slackware: 13
- Kernel: 3.0
- Desktop: KDE 4
- Distribuzione: Mac OS X
- Contatta:
Non mi funziona in nessun modoDani ha scritto:Ora run script l'ho impostato così:Poco elegante ma funzionaleCodice: Seleziona tutto
cd "%directory" && gcc "%filename" -o `echo "%filename" | cut -f1 -d.` && konsole -e `pwd`/`echo "%filename" | cut -f1 -d.`(almeno per quello che devo fare)
In pratica impostando la scorciatoia non mi compila proprio nulla, (Ho impostato F5 come scorciatoia ...).
Il problema è che quando inserisci l'input scanf() legge i due interi e l'invio, il quale rimane nel buffer e fa apparentemente ignorare l'istruzione getchar()boh ha scritto:Per esempio questo:Programma più elaborato rispetto a uno che stampa a video e basta, ma sono programmi abbastanza banaliCodice: Seleziona tutto
#include <stdio.h> int main() { int a,b; printf("Inserisci base e altezza del rettangolo \n"); scanf("%d %d", &a, &b); printf("Il rettangolo ha area pari a %d \n\n", a*b); getchar(); }
Potresti risolvere seguendo il consiglio di albatros o anche facendoti una procedura di due righe da richiamare ogni qualvolta ce ne fosse bisogno
Codice: Seleziona tutto
void clrbuff (void){
int c;
while ( (c=getchar()) != '\n' && c != EOF )
;
}
@dad: cosa hai associato ad F5 ?
- DaD
- Linux 2.x

- Messaggi: 371
- Iscritto il: mer 7 feb 2007, 18:19
- Nome Cognome: Antonio Barra
- Slackware: 13
- Kernel: 3.0
- Desktop: KDE 4
- Distribuzione: Mac OS X
- Contatta:
Runscript, e lo configurato come hai suggerito tu;Dani ha scritto:@dad: cosa hai associato ad F5 ?
Codice: Seleziona tutto
cd "%directory" && gcc "%filename" -o `echo "%filename" | cut -f1 -d.` && konsole -e `pwd`/`echo "%filename" | cut -f1 -d.`- DaD
- Linux 2.x

- Messaggi: 371
- Iscritto il: mer 7 feb 2007, 18:19
- Nome Cognome: Antonio Barra
- Slackware: 13
- Kernel: 3.0
- Desktop: KDE 4
- Distribuzione: Mac OS X
- Contatta:
Hmm ...Dani ha scritto:Sicuro che nel sorgente non ci siano errori di sintassi e che di conseguenza la compilazione vada a buon fine ? Il binario viene creato nella directory che contiene il file .c ?
Codice: Seleziona tutto
#include <stdio.h>
int main(){
v = 1;
v < 5 ? print("Min"); : print("Max");
clrbuff();
}
void clrbuff(void){
int c;
while ( (c=getchar()) != '\n' && c != EOF );
}Il file binario non viene proprio creato alla pressione di F5, cioè vedo per un nanosecondo l'icona del runscript comparire sul puntatore, però quando vado a vedere se è stato creato il binario, non c'è proprio nulla :\
In effetti ci sono un po' di errori e gcc non compila:
- v non è stata dichiarata
- print() non esiste, almeno in stdio...
- il corpo di clrbuff() è dopo il main e prima manca il prototipo
- l'operatore ternario mi sembra applicato in maniea scorretta
Versione corretta:
ps: clrbuff devi chiamarla solo quando ce n'è bisogno
- v non è stata dichiarata
- print() non esiste, almeno in stdio...
- il corpo di clrbuff() è dopo il main e prima manca il prototipo
- l'operatore ternario mi sembra applicato in maniea scorretta
Versione corretta:
Codice: Seleziona tutto
#include <stdio.h>
void clrbuff(void);
int main(void){
int v = 1;
printf ("%s\n", (v < 5) ? "Min" : "Max");
puts ("Premere invio...");
getchar();
return 0;
}
void clrbuff(void){
int c;
while ( (c=getchar()) != '\n' && c != EOF );
}
- DaD
- Linux 2.x

- Messaggi: 371
- Iscritto il: mer 7 feb 2007, 18:19
- Nome Cognome: Antonio Barra
- Slackware: 13
- Kernel: 3.0
- Desktop: KDE 4
- Distribuzione: Mac OS X
- Contatta:
1. Giusto, l'unica mia scusante (se può essere considerata così) e che vengo dalla programmazione in phpDani ha scritto:In effetti ci sono un po' di errori e gcc non compila:
- v non è stata dichiarata
- print() non esiste, almeno in stdio...
- il corpo di clrbuff() è dopo il main e prima manca il prototipo
- l'operatore ternario mi sembra applicato in maniea scorretta
ps: clrbuff devi chiamarla solo quando ce n'è bisogno
2. Vedi punto uno .
3. Ma io credevo che la dichiarazione del prototipo della funzione non fosse obbligatoria, cioè questo script ad esempio me lo compila senza problemi;
Codice: Seleziona tutto
#include <stdio.h>
int main(){
int y = sum(2,4);
printf ("Funzione sum: %d\n",y);
}
int sum(int a, int b) {
return a + b;
}4. Nell'operatore ternario c'era un ";" di troppo
5. Sarebbe? .
Quando chiami una funzione il compilatore deve già conoscere cosa ritorna e quali parametri accetta, di conseguenza devi mettere il prototipo prima di richiamarla o in alternativa dichiarare la funzione prima del suo utilizzo...Il resto, anche se funziona con questo o quel compilatore non è corretto, che io sappiaDaD ha scritto: 3. Ma io credevo che la dichiarazione del prototipo della funzione non fosse obbligatoria, cioè questo script ad esempio me lo compila senza problemi;
Quando il buffer di stdin non è vuoto5. Sarebbe? .

