Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Passare da codice C++ a C

    Salve sono nuovo del forum e siccome sono alle prime armi con la progrommazione vorrei chiedere

    se c'è qualcuno che possa aiutarmi con la conversione di queste 2 funzioni scritte in C++ in C

    grazie in anticipo.

    ---

    int conta_righe()

    {
    fstream file;
    string s;
    int contarighe=0;
    file.open("Listino.txt",ios::in);
    if(file)
    {
    while(!file.eof())
    {
    getline(file,s,'\n');
    contarighe++;
    }
    }
    else
    cout <<"Il FILE Listino.txt non esiste"<<endl;
    file.close();
    return contarighe-1;

    ----

    int lineaK(int k)

    {
    int x=0;
    ifstream read("Listino.txt",ios::in);
    if (!read)
    cout <<"Impossibile aprire il FILE Listino.txt!."<<endl;
    else
    {
    for (int i=0;i<=k;i++)
    getline(read,linea,'\n');

    read.close();
    // cout <<"ECCO LA LINEA K"<<endl;
    // cout << linea << endl;
    for (int i=0;i<=59;i++)
    {
    vet[i]=linea[i];
    }

    /* cout <<"STRINGA DI CHAR"<<endl;
    for (int i=0;i<=60;i++)
    cout<<vet[i];
    cout<<"\n"; */
    do
    {
    cout <<"Inserisci '1' per modificare il nome"<<endl;
    cout <<"Inserisci '2' per modificare la marca"<<endl;
    cout <<"Inserisci '3' per modificare il prezzo"<<endl;
    cout <<"Inserisci '4' per modificare la quantita'"<<endl;
    cin >> opz;
    }
    while(opz>=5);
    cout <<"Inserisci il campo modificato"<<endl;
    cin.sync();
    getline (cin,modifica);
    modifica.resize(20);
    switch(opz)
    {
    case 1:
    for (int i=5;i<=24;i++)
    {
    vet[i]=modifica[x];
    x++;
    }
    break;
    case 2:
    for (int i=25;i<=44;i++)
    {
    vet[i]=modifica[x];
    x++;
    }
    break;
    case 3:
    for (int i=45;i<=54;i++)
    {
    vet[i]=modifica[x];
    x++;
    }
    break;
    case 4:
    for (int i=55;i<=59;i++)
    {
    vet[i]=modifica[x];
    x++;
    }
    break;
    }
    for (int i=0;i<=58;i++)
    {
    if (vet[i]=='\0')
    vet[i]=' ';
    }
    /* cout <<"ECCO IL CHAR MODIFICATO"<<endl;
    for (int i=0;i<=58;i++)
    cout<<vet[i]; */
    vet[59]='\0';
    cout <<"\n";
    // cout <<"ECCO LA STRINGA INTERA MODIFICATA"<<endl;
    mod=vet;
    // cout << mod << endl;
    fstream r_w("Listino.txt",ios::in | ios:ut);
    for (int i=1;i<=k;i++)
    getline(r_w,linea,'\n');

    // int w=conta_righe(); //tolto e messo prima de main
    r_w.seekp(k-w,ios_base::cur);
    r_w << mod;
    r_w.close();
    }
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Esponi cosa non riesci a fare e in che modo gli utenti dovrebbero aiutarti, purché non sia fare il lavoro al posto tuo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    di C++ non vedo praticamente nulla, se non le funzioni di i/o

  4. #4
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    direi che, anzitutto, in C fstream è sostituibile con
    codice:
    FILE * nome_puntatore;
    automaticamente

    codice:
    FILE * fopen ( const char * filename, const char * mode );
    Quindi magari : nome_puntatore = fopen("C:\\Users\\nome", "r+");

    dopodiché
    codice:
    int fprintf(FILE *stream, char *formato, argomenti ...);
    quindi: int e; e = fprintf(nome_puntatore, "1)%s2)%s3)%s", pointer1, pointer2, pointer3);

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.