Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    C++ - Un primo programma di input output

    Mi sto cimentando in un po di C++, mi sono accorto che è molto + difficile del previsto, vi spiego
    Sono alle prese con un piccolo esempio di questo tipo
    codice:
    /*
    Prova input output di C 
    */
    #include <stdio.h>
    
    	main()
    {
    				//Dichiarazioni variabili
    			char nome;
    			char cognome;
    
    	printf("Salve.");
    	printf("E' ora di inserire un numero");
    	 scanf("Forza, metti il tuo nome",nome);
    	 scanf("Adesso devi mettere il cognome",cognome);
    	printf("Lettura dati in corso...");
    	
    	
    if(nome=="Domenico"){
    	printf("Bene");
    					}
    			
    				return(0);
    }
    In teoria non è altro che una semplice cazzata input output, però intanto non vuole funzionare in nessuna maniera, anche se provo a trasformarlo in uno switch case

    codice:
    /*
    Prova input output di C 
    */
    #include <stdio.h>
    
    	main()
    {
    				//Dichiarazioni variabili
    			char nome;
    			char cognome;
    
    	printf("Salve.");
    	printf("E' ora di inserire un numero");
    	 scanf("Forza, metti il tuo nome",nome);
    	 scanf("Adesso devi mettere il cognome",cognome);
    	printf("Lettura dati in corso...");
    	
    	
    switch(nome) 
    {
    case("Domenico"):
    printf("Bene");
    default:
    printf("Male");
    }
    			
    				return(0);
    }
    Sapete darmi delucidazioni su questi controlli? Alcuni hanno detto che è per colpa della variabile char...ma purtroppo non sono ancora cosi bravo da capire bene...
    Uso VisualC++ 6.0!

  2. #2
    sono un po' arrugginito di C ma se non mi sbaglio per usare un char devi usarlo come un vettore
    in teoria
    char nome è una variabile di un solo campo
    char nome[10] è un vettore di dieci
    quindi inteoria se tu scrivi domenica lui vede solo la D e non domenico....
    Prendila con le pinze perchè non mi ricordo benissimo come funzia.!
    CIAO!

  3. #3
    Sembra andare, ho modificato cosi il codice
    codice:
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
    			char nome[8];
    			char cognome;
    
    	printf("Salve.");
    	 scanf("Forza, metti il tuo nome",&nome);
    	 scanf("Adesso devi mettere il cognome",&cognome);
    	printf("Lettura dati in corso...");
    	
    
    if (strcmp(nome, "Domenico")) {
    	printf("X-Sgurz\n");			
    								}		
    			return(0);	
    }
    Però il problema che non esce ne "Forza metti il tuo nome" e nemmeno il cognome, non elabora i dati perchè quello che scrivo scrivo printa sempre....

  4. #4
    Ho visto solo ora.
    Non puoi passare del testa da printare sullo schermo alla scanf
    il testo va messo nella printf

    la scanf funzia così
    The scanf command: (equivalent to BASIC's INPUT command)

    Takes input from the keyboard, and stores it in specified variable. Syntax is:

    scanf("%vartype", &varname);

    For example, this line:

    scanf("%s", &strname);

    Gets string input, and sticks it in a variable called strname.

    LA %s serve a dirgli che la var che utilizzi è una string.

  5. #5
    Azz, ottima informazione credo sia quello che mi serviva

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    codice:
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
    char nome[20]; //fai un margine + grande, Domenico è a filo
    char cognome[20];//anche questo deve essere un array
    
    	printf("Salve.\nMetti il nome: ");
    	 scanf("%s",&nome);//metti SEMPRE il tipo di formattazione sennò cadi nel bug format string
    printf("Metti il cognome: ");
    	 scanf("%s",&cognome);
    	printf("\nLettura dati in corso... ");
    	
    
    if (!strcmp(nome, "Domenico")) {// strcmp ritorna 0 se è uguele, 0 vuol dire falso quindi devi
    	//invertire con !
    	printf("X-Sgurz\n");
    }			
    	
    			return(0);	
    }
    anche char cognome dev'essere un puntatore.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  7. #7
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Mi sto cimentando in un po di C++, mi sono accorto che è molto + difficile del previsto
    Il C++ è molto + facile del C, infatti il tuo sorgente è in C non in C++, ecco come sarebbe sennò:

    codice:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
    	string nome, cognome;
    	cout << "Inserire nome: ";
    	cin >> nome;
    	cout << "\nInserire cognome: ";
    	cin >> cognome;
    	cout << "\nElaboro... ";
    	if(nome == "Domenico") 
    	cout << "X-Sgurz\n";
    
    	return 0;
    }
    Più facile direi no?

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  8. #8
    porc...che pacco, grazie!
    Ma allora non servono nell'if tutti quei cosi
    {
    e }
    E switch case invece come funziona

  9. #9
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    le { servono solo se nel caso l'if sia vero esegua più righe

    codice:
    if(true)
    cout << "Ciao\n";
    cout << "Salve\n";
    in quel caso, dato che if è true, verrà eseguoto sia ciao che salva, se fosse falso ciao non sarebbe eseguito ma salve si

    se invece vuoi che più di un comando venga eseguito in caso di if affermativo devi mettere le graffe:

    codice:
    if(true) {
    cout << "Ciao\n";
    cout << "Salve\n";
    }
    se if sarà invece falso ne Ciao ne Salve sarà stampato.

    Lo switch ha il seguente costrutto:

    codice:
    switch(variabile_da_verificare) {
    case VALORE:
    //comandi
    break;
    case VALORE2:
    //comandi
    break;
    default:// se la variabile non ha nessun valore messo sopra
    //comandi
    }
    Quello che ora non ricordo è se anche il C++ come in Java accetta solo tipi primitivi o anche oggetti in variabile_da_verificare.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  10. #10
    Ma allora la guida di programmazione.html.it è un po erratam credo!
    Comunque invece cosa significa using namespace?

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.