Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 42

Discussione: [C] Esercizi

  1. #1
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568

    [C] Esercizi

    Allora ho da fare questi esercizi non so se ho capito bene la traccia potreste dirmi voi come la intendete. Sono esercizi sui flussi standard e il reindirizzamento. Posso usare funzioni come getc,getchar,gets,scanf,fscanf,printf,fprintf,unge tc,getch.
    Ciao

    Esercizio 1: Scrivere un programma che reinderizzi un file sulla stampante un carattere per volta

    Esercizio 2: Scrivere un programma che utilizzi il reinderizzamento per accettare l'input da un file su disco , conti il numero di occorrenze di ciascuna lettera nel file e poi visualizzi il risultato sullo schermo.

    Esercizio 3: Scrivere un programma che stampi i file sorgente C. Utilizzare il reindirizzamento per inserire il file sorgente e fprintf per la stampa.

    Esercizio 4: Modificando l'es. 3 inserire i numeri di riga nella stampa.

    Esercizio 5: scrivere un programma che accetti l'input da tastiera, ne esegua l'eco sullo schermo e poi lo riproduca sulla stampante. Il programma deve contare le righe e fare avanzare la carta nella stampante di una pagina quando necessario. Utilizzare un tasto funzione per terminare il programma.

    Grazie
    Ciao

  2. #2
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    up

  3. #3
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    up

  4. #4
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Up
    Please

  5. #5
    Up(aiutate questo poveraccio!)

  6. #6
    Vabe, mi spiace averti visto solo ora, vedo che posso fare:

    1. Per quanto sembra, non devi fare altro che un programma che preso un file, mandi, un carattere alla volta, i dati sulla stampante. In altre parole un programma per stampare.
    -----SVOLGIMENTO-----
    PREMESSE:
    Per utilizzare la stampante devi usare lo stream standard stdprn. Questo e' un normale stream, come stdout (per la console) che indirizza i dati verso la stampante (LPT1)
    Inoltre, devi utilizzare le operazioni su file, cioe' fopen() fclose(), fscanf() (o fgetc()) e fprintf() (o fputc())
    LOGICA:
    Il programma e' semplice. Le cose difficili erano solo sapere quali stream usare.
    Questo deve:
    -Aprire il file e gestire eventuali errori
    -Ciclo che va dall'inizio alla fine con lettura e stampa dei carateri
    -Chiusura del file
    CODICE: Sappi che me lo sto inventando al volo...
    codice:
    int main(int argc, char *argv[])
    {
    	FILE *ptr = NULL;
    	if (argc < 2)
    	{
    		printf("Utilizzo: %s <nomefile>", argv[0]); // gestisce errori di esecuzione
    		exit(1);
    	}
    	else
    		ptr = fopen(argv[1], "r");
    	if (ptr == NULL)
    	{
    		printf("Imposs aprire il file\n");
    		exit(2);
    	}
    
    	while(!ptr.feof())
    		fprintf(stdprn, "%c", fgetc(ptr));
    
    	fclose(ptr);
    }
    Questo rudimentale programma dovrebbe funzionare, non so che fara' seriamente, ma la logica dovrebbe esserci

    Ora vado a mangiare
    poi posto gli altri e vedo che posso fare
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  7. #7
    RIEKKIME
    Ha gia, forse, il programma che ho fatto e' bagliato, sono adesso mi viene in mente che forse avresti proprio dovuto reindirizzare lo stream per la stampante... bho non so.
    Passo al secondo esercizio:
    2. Anche qui ho il clamoroso sosptetto che tu debba reindirizzare gli stream, ma non so come si fa
    Comunque credo che anche qui tu debba aprire il file e contare quante volte c'e' una determinata lettera in esso.

    Ripeto che questa soluzione non mi ispira troppo... secondo me va fatto in un altro modo, ma dato che nn saprei che fare, ti scrivo questo, poi vedi tu.

    LOGICA:
    Apri un file
    leggi, un carattere alla volta e li confronti con quello dato
    conti quelli uguali
    chiudi il file

    no, il sorgente non te lo faccio, e' semplicissimo, puoi anche modificare il codice del primo eserizio

    3: pure questo e' abbastanza facile, o almeno credo. Devi utilizzare il primo parametro argv[0] per sapere il nome del file. Poi immagino tu gli aggiunga l'estenzione .c e lo apri normalmente.

    Il quinto non lo so

    ti ricordo che credo non vadano bene le tecniche usate, e' probabile che ci sia bisogno di un vero reindirizzamento, che non conosco

    mi spiace
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  8. #8
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Ti ringrazio per avermi risposto. Purtroppo non posso usare argv e fopen ed fclose.

    Per reindirizzamento intendo eseguire da prompt questo comando
    Se il file si chiama es2.exe

    es2<presentazione.txt
    In questo modo le funzioni fscanf e company i8nviano a stdin il contenuto del file.
    Se invece scrivo es2>prn il programma reindirizza alla stampante l'output del programma.
    Se mi sai aiutare te ne sarò gratissimo
    Ciao

  9. #9
    ummm, vedo che posso fare

    a giudicare da quello che vedo... sembra che gli argomenti per il programma ti servano. Cioe', se non mi sbaglio, avviarlo facendo

    programma < file.txt
    o
    programma > file.txt

    utilizza i parametri, tramite argc e argv

    altrimenti tu come lo fai?

    ora, non continuo a fare il programma perche' sarebbe un po inutile. Comincia a dirmi come risolvere questo problema facendo a modo tuo, poi ti faccio il programma, altrimenti e' un po inutile

    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  10. #10
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Allora io pensavo di fare così:

    #include <stdio.h>

    char buffer[256];
    int x;
    +
    int main(){
    while(gets(ptr)!=NULL)
    for(x=0;x<256;x++){
    fputc(ptr[x],stdprn);
    }
    return 0;
    }
    ma mi stampa qualcosa di assurdo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.