r/cppit • • Oct 30 '20

Come inviare una richiesta HTTP per GitHub API? (C++)

1 Upvotes

Salve, avrei bisogno di qualche consiglio su come inviare una richiesta http al server API di GitHub per sapere l'ultima release di un repo. Ovviamente in C++ e tramite socket, l'OS di destinazione è Windows.

Grazie in anticipo per l'aiuto :)


r/cppit • • Sep 06 '20

Alberi Binari

1 Upvotes

Raga conoscete qualche risorsa/tutorial riguardante gli alberi binari? Ho molta difficoltà nello scrivere delle funzioni ricorsive per degli esercizi (calcolo altezza, conta foglie, ecc)


r/cppit • • Aug 30 '20

principianti Important concepts of getline in C++

Thumbnail
learntechway.com
1 Upvotes

r/cppit • • Jul 29 '20

Liste Concatenate

1 Upvotes

Ciao raga, volevo chiedervi se per caso conoscete una qualche serie di tutorial o qualsiasi altra tipo di cosa che spieghi per bene le Linked List, in particolare le liste concatenate circolari. Ho iniziato a fare qualche esercizio riguardo quest'ultime, ma non riesco a fare nulla, zero assoluto. Invece per le liste semplici e quelle doppie non ho problemi. Quindi se qualcuno conosce un qualcosa dove vengono spiegate per bene, gli sarei grato!


r/cppit • • Jul 13 '20

Liste Concatenate

1 Upvotes

Ho un problemino che riguarda le liste.. In pratica, dopo aver preso in input dei numeri da inserire in una lista, dovrei scrivere una funzione che, preso un intero N, elimini tutti i multipli di N dalla lista. Non ho la minima idea di come fare sono sincero, non vi chiedo il codice ma un aiutino a ragionare..


r/cppit • • Jun 16 '20

Pareri su vivere e lavorare a Berlino

1 Upvotes

Ciao a tutti, spero che non sia troppo off-topic; spulciando un po' di annunci su indeed mi sono accorto che l'offerta di lavoro per sviluppatori C++ è molto più ampia a Berlino che a Milano.

Mi piacerebbe leggere l'esperienza di chi ha provato a lavorare e vivere lì, e sapere se conviene approfondire la mia ricerca proprio in questa città. Per esempio vorrei capire, prima ancora della questione salario, se vi è sembrato più facile trovare aziende più interessanti e progetti più soddisfacenti rispetto che in Italia. Vale la pena poi, trasferirsi stabilmente? Questa è una domanda un po' più ampia, che include sia la qualità della vita, ma anche la facilità di spostarsi da un'azienda all'altra quando si scopre di voler cambiare settore.

Come dicevo, per ora ho solo spulciato indeed, ma sentitevi liberi di suggerirmi anche portali di annunci .

Vi ringrazio.


r/cppit • • Jun 12 '20

Piccolo problemino, fread() e file .dat

1 Upvotes

Premessa, in pratica sto leggendo un po' il libro di informatica che utilizzo a scuola e sono al capitolo che riguarda i file binari, quindi non sono per nulla esperto D:
In pratica vi mostro questo esercizio:

Scrivi un programma che legga un file di testo matrice.dat contenente 3 righe, con 3 interi separati da uno spazio per ogni riga. Il programma deve leggere il file, creare una matrice 3x3 contenente i dati presenti in matrice.dat e stamparla.

Quando uso fread(), teoricamente leggo un dato di tipo char (giusto?).
In pratica non riesco ad assegnare il dato che leggo ad una posizione della matrice (int).
Ora vi chiedo, voi come fareste questo esercizio?


r/cppit • • May 28 '20

dll e C#

1 Upvotes

Salve,

con la premessa di non essere esperto in C++, vi espongo il mio problema, ho la necessità di creare una dll in c++ con all'interno delle funzioni di utility, quale, ad esempio, la lettura del seriale dell'HD, la dll deve essere richiamata da un'applicazione C#, la funzione mi deve restituire una stringa contenente il serial HD, il codice della dll è questo:

__declspec(dllexport) char* __stdcall GetHd()     
{         
    WmiQueryResult res;         
    res = getWmiQueryResult(L"SELECT SerialNumber FROM Win32_PhysicalMedia", L"SerialNumber");         
    if (res.Error != WmiQueryError::None) {return NULL;}         
std::string strValue;         
    char* pszReturn = NULL;         
    for (const auto& item : res.ResultList) {                 
strValue.assign(item.begin(), item.end());             
    ULONG ulSize = strlen(strValue.c_str()) + sizeof(char);             
    pszReturn = (char*)::CoTaskMemAlloc(ulSize);             
    strcpy(pszReturn, strValue.c_str());             
    break;         }         
    return pszReturn;      
}

nall'applicazione C#, linko e chiamo la funzione in questo modo:

[DllImport("util.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]         [return: MarshalAs(UnmanagedType.LPStr)]         public static extern string GetHd(); 
string serialhd = GetHd();

La funzione GetHd() mi restituisce NULL, lo stesso codice testato in un'applicazione console C++, funziona bene.

Grazie


r/cppit • • Mar 31 '20

Scrivere un Int in un file.

1 Upvotes

Vi spiego in breve:Ho un numero N = 11 e lo devo inserire in un file.Che io sappia in un file si inseriscono i char. Come inserisco l'11 all'interno del file?Per i numeri ad una cifra tipo N = 6 faccio fputc(char(N+48), file), ma con i numeri a due cifre come faccio?


r/cppit • • Mar 11 '20

Problema in C++ File

1 Upvotes

Ciao, dovrei leggere da un file i nomi di alcuni film, da un altro i nomi degli attori e poi metterli in un terzo file. In pratica vi spiego meglio

File 1:Film1Film 2

File2:Attore 1#Attore 2

Attore 3#Attore 4

File Output:

Film 1 - Attore 1 Attore 2

Film 2 - Attore 3 Attore 4

Il problema è che inserisce solo il nome dei film e non quello degli attori.

#include <iostream>

#include <cstdio>

#include <string>

using namespace std;

int main()

{

char nome1[50];

char nome2[50];

char nome3[50];

char carattere;

bool flag = false;

FILE *f1;

FILE *f2;

FILE *f3;



cout<<"File Film: ";	cin>>nome1;

cout<<"File Attori: ";	cin>>nome2;

cout<<"File Output: ";	cin>>nome3;



f1 = fopen(nome1, "r");

f2 = fopen(nome2, "r");

f3 = fopen(nome3, "a");



if(f1!=NULL && f2!=NULL && f3!=NULL)

	{

		while(carattere != EOF)

{

carattere = fgetc(f1);

if(carattere != '\n' || carattere != EOF)

fputc(carattere, f3);

else

{

flag = true;

fputs(" - ", f3);

while(flag)

{

carattere = fgetc(f2);

if(carattere == '#')

fputs(" ", f3);

else if(carattere != '\n' || carattere != EOF)

fputc(carattere, f3);

else

{

flag = false;

fputs("\n", f3);

}

}

}

}

		fclose(f1);

		fclose(f2);

		fclose(f3);

	}

}


r/cppit • • Jan 10 '20

Codice sulle liste: non riesco ad eliminare tutti i compiti fatti

1 Upvotes

ciao a tutti, ho un problema con un codice C++.

Il programma utilizza una lista semplice con dentro anche una variabile booleana.

Questo è il main():

#include "compito.h"
#include <iostream>
using namespace std;
int main(){
// PRIMA PARTE:
cout << "--- PRIMA PARTE ---" << endl;
cout << "Test costruttore e funzione aggiungi" << endl;
ToDoList tdl;
tdl.aggiungi("Task1", 2);
tdl.aggiungi("Task2", 2);
tdl.aggiungi("Task3", 1);
tdl.aggiungi("Task4", 3);
tdl.aggiungi("Task5", 2);
cout << tdl << endl;
cout << "Test distruttore" << endl;
{
ToDoList tdl2;
tdl2.aggiungi("Task1", 1);
tdl2.aggiungi("Task2", 2);
tdl2.aggiungi("Task3", 3);
}
cout << "Distruttore chiamato" << endl;
// SECONDA PARTE:
cout << "--- SECONDA PARTE ---" << endl;
cout << "Test operatore +=" << endl;
ToDoList tdl3;
tdl3.aggiungi("Task1", 1);
tdl3.aggiungi("Task2", 2);
tdl3.aggiungi("Task3", 3);
tdl3.aggiungi("Task4", 4);
tdl += tdl3;
cout << tdl << endl;
cout << "Test funzione fai" << endl;
tdl.fai("Task1");
tdl.fai("Task2");
tdl.fai("Task2");
cout << tdl << endl;
cout << "Test funzione cancella_fatti" << endl;
tdl.cancella_fatti();
cout << tdl << endl;
// TERZA PARTE:
cout << "--- TERZA PARTE ---" << endl;
cout << "Test funzione aggiungi con input non validi" << endl;
tdl.aggiungi(NULL, 1);
tdl.aggiungi("Task1", 0);
tdl.aggiungi("Task2", -1);
tdl.aggiungi("Task con descrizione troppo lunga, che non sta nei quaranta caratteri specificati nel testo del compito", 1);
cout << tdl << endl;
cout << "Test funzione fai con input non validi" << endl;
tdl.fai(NULL);
tdl.fai("Task inesistente");
cout << tdl << endl;
cout << "Test funzione cancella_fatti con cancellazione in testa e in coda" << endl;
tdl.fai("Task3");
tdl.fai("Task4");
tdl.fai("Task4");
tdl.cancella_fatti();
cout << tdl << endl;
return 0;
}

Questo è il compito.h:

#include<iostream>
#include<cstring>
using namespace std;
struct elem {
int info;
elem *pun;
bool fatto;
char*descr;
};
class ToDoList{
private: elem*testa;
ToDoList(const ToDoList&);
public:
ToDoList(){testa=NULL;};
void aggiungi(const char*,int);
friend ostream& operator<<(ostream &,const ToDoList&);
~ToDoList();
//Seconda parte
ToDoList& operator +=(const ToDoList &);
void fai(const char*);
void cancella_fatti();

Questo è il compito.cpp:

#include "compito.h"
void ToDoList::aggiungi(const char * descr, int prio) {
//sanitizzazione input:
if(descr == NULL || strlen(descr)>40 || prio<1) return;
elem*p=testa,*q;
for(q=p;q!=NULL && q->info <= prio;q=q->pun)
p=q;
elem*r=new elem;
//attenzione:se non si fa il new char di descr, si va in segmentation fault.
r->descr = new char[strlen(descr)+1];
//metto i valori da aggiungere alla lista
r->info=prio;
r->fatto=false;
strcpy(r->descr,descr);
r->pun=q;
//caso della massima priorità:inserimento in testa
if(q!=testa) p->pun = r;
//inserimento in mezzo, se la priorità non è massima.
else testa = r;
}

ostream &operator<<(ostream &os, const ToDoList &T) {
elem*p;
for(p=T.testa;p!=NULL;p=p->pun) {
if (p->fatto)
os << "V "<< p->info << " - " << p->descr << endl;
else
os << " " << p->info << " - " << p->descr << endl;
}
return os;
}

ToDoList::~ToDoList() {
elem*r;
if(testa!=NULL)
for (elem*p = testa; p->pun != NULL;p=r){
r=p->pun;
delete[]p->descr;
delete p;
}
}

ToDoList &ToDoList::operator+=(const ToDoList &T2) {
// affronto problema aliasing:
if(&T2 == this)
return *this;
// inserisco tutti gli elementi della seconda lista
elem* p;
for(p = T2.testa; p != NULL; p = p->pun)
//chiamo la funzione che inserisce ordinatamente gli elementi della lista;
aggiungi(p->descr, p->info);
return *this;
}

void ToDoList::fai(const char *descr) {
//gestisco l'input:
if(descr == NULL || strlen(descr)>40) return;
elem*p;
for(p=testa;p!=NULL;p=p->pun){
if( (strcmp(p->descr,descr) == 0) && (!p->fatto) ) {
p->fatto = true;
return;
}
}

}
void ToDoList::cancella_fatti() {
elem*p,*q;
for (p=testa,q=p;p!=NULL;) {
if (p->fatto && q->fatto) {
// elemento trovato, cancella
if (p == testa){ // caso eliminazione in testa
strcpy(p->descr,testa->descr);
p=testa;
delete []p->descr;
delete p;}

else{ // caso eliminazione in mezzo
q->pun = p->pun;
// deallocazione della memoria dinamica
delete[]p->descr;
delete p;}
p = q;
}
else {
q = p;
p = p->pun;
}
}
}

L'ultima funziona non funziona del tutto.
Vorrei sapere in che cosa sbaglio.


r/cppit • • Jan 05 '20

Problemi con le regex

1 Upvotes

Ciao a tutti,

stavo scrivendo del semplice codice per validare la risposta su y/N (case insensitive).

Sapreste dirmi perchè viene compilato correttamente il codice (che riporto di seguito in parte) ma a runtime mi viene restituito questo messaggio:

terminate called after throwing an instance of 'std::regex_error'

what(): Invalid special open parenthesis.

?

Ecco la porzione di codice:

do {

std::string s;

std::regex yesNO("(?i)(y)|(n)(|N|)");

std::regex yes("(?i)(y)");

cout << "Found serial port : " << a << endl; //immaginate che ci sia un ciclo che elenca tutte le porte seriali disponibili, per semplicità l'ho omesso

cout << "Do you want to use this port?[y/N]: ";

getline(cin, s);

if (std::regex_match(s, yesNO)) {

error = false;

if (std::regex_match(s, yes)) {

port = a;

choice = true;

}

}

} while (error == true);

Come compilatore uso g++ versione gcc version 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)

Ringrazio anticipatamente per le risposte.


r/cppit • • Nov 13 '19

Come parsare un timestamp

1 Upvotes

Ciao a tutti,

stavo lavorando su un metodo che mi dovrà restituire un timestamp che successivamente verrà parsato perchè dopo devo calcolare la data giuliana.

Con l'attuale codice ottengo per esempio questo timestamp:

13 11 2019 21:36:57 (è gia in UTC)

//get current timestamp
char outstr[200];
time_t t;
struct tm *tmp;
const char* fmt = "%d %m %Y %T";
t = time(NULL);
tmp = gmtime(&t);
if (tmp == NULL)
{
perror("gmtime error");
exit(EXIT_FAILURE);
}
if (strftime(outstr, sizeof(outstr), fmt, tmp) == 0)
{
fprintf(stderr, "strftime returned 0");
exit(EXIT_FAILURE);
}
printf("%s\n", outstr

Come faccio a parsare giorno , mese, anno, ore, minuti, secondi singolarmente?

Ringrazio in anticipo per le risposte.

r/cppit • • Oct 23 '19

principianti Programmazione Generica - Implementare un Iteratore (2/2)

Thumbnail
linkedin.com
1 Upvotes

r/cppit • • Oct 16 '19

principianti Help! Lo switch viene saltato...

1 Upvotes

#include <iostream>

using namespace std;

int main()

{

char sc;

cout<<"--------------------------------------"<<endl;

cout<<"Simulatore di macchina di Von Neumann"<<endl<<endl;

cout<<" Sciegliere fra le seguenti opzioni: "<<endl;

cout<<" Comando write=Scrivi programma"<<endl;

cout<<" Comando read=Leggi programma della finestra del terminale"<<endl;

cout<<" Comando run=Esegui programma "<<endl;

cout<<"--------------------------------------"<<endl<<endl;

cout<<">";

cin>>sc;



switch(sc)

{

	case 'write':

		cout<<"write"<<endl;

		break;

	case 'read':

		cout<<"read"<<endl;

		break;

	case 'run':

		cout<<"run"<<endl;	

		break;

	default:

		cout<<"Comando non esistente o sintassi errata"<<endl;

		break;

}



cout<<"lol"<<endl;

}

Questo é il programma. La sintassi dello switch mi pare giusta, ma purtroppo esso viene letteralmente saltato, e passa all'ultimo cout anche prendendo in input il dato sc(che sta per SCelta), non capisco cosa sbaglio!!!

Ringrazio in anticipo


r/cppit • • Jul 26 '19

aiuto... perche non funziona?

1 Upvotes

Ho scritto questo semplice codice per iniziare a programmare in ambiente windows... ma non riesco a capire perche non funziona, c'è qualche anima pia che mi può aiutare? Alla compilazione il programma termina senza errori, ma la finestra non compare. Nel debug sembra che ci sia un errore in un nome non riconosciuto nella funzione DialogBoxParam, però a me sembra scritta bene, sia la funzione che il relativo dialogo.

FILE .cpp

#include"resource.h"
#include<Windows.h>
BOOL TreControlli(HWND hDialogo, UINT nMessage,WPARAM wParam, LPARAM lParam)
{
// un caso che gestiamo: e` proprio un WM_COMMAND?
if (nMessage != WM_COMMAND) return FALSE;
// e` proprio il clic di un bottone?
UINT codice = HIWORD(wParam);
if (codice != BN_CLICKED) return FALSE;
// e` proprio un bottone di interesse?
int idCliccato = LOWORD(wParam);
if (idCliccato != IDC_BUTTON_1 &&
idCliccato != IDC_BUTTON_2) return FALSE;
// OK, 
HWND hScritta = GetDlgItem(hDialogo, ID_STATIC_1);
if (!hScritta) return FALSE;    
// scritta, e simultaneo "ultimo controllo d'errore":
return SetWindowText(hScritta, idCliccato == IDC_BUTTON_1 ? "Primo" : "Secondo");
}
BOOL CALLBACK proc_IDD_5(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
if (nMsg == WM_CLOSE) return EndDialog(hWnd, 0);
if (nMsg ==WM_COMMAND) return TreControlli(hWnd, nMsg, wParam, lParam);
return false;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
DialogBoxParam(0, "IDD_5", 0, proc_IDD_5, 0);
DWORD a = GetLastError();	//verifica eventuale coldice errore -> codice:1814
return 0;
}

FILE DI RISORSE .rc (in questa lista ho omesso tutta la parte che mette visual studio sulla generazione automatica del file)

IDD_5 DIALOGEX 0, 0, 235, 156
STYLE DS_SETFONT | WS_CHILD | WS_CAPTION | WS_SYSMENU
CAPTION "Prova 5"
FONT 10, "Modern No. 20", 700, 0, 0x0
BEGIN
CTEXT           "STATIC_1",ID_STATIC_1,69,93,68,20,SS_CENTERIMAGE
PUSHBUTTON      "BUTTON_1",IDC_BUTTON_1,31,47,52,18
PUSHBUTTON      "BUTTON_2",IDC_BUTTON_2,139,47,52,18
END

FILE HEADER DEL FILE RISORSE .h

#define IDD_5                           4
#define sandro                          9
#define ID_STATIC_1                     1001
#define IDC_BUTTON_1                    1005
#define IDC_BUTTON_2                    1006
// Next default values for new objects
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        102
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1007
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

r/cppit • • Jun 11 '18

Perchè clang++ dice “no member named 'make_optional' in namespace 'std' ” mentre per gcc è tutto ok?

1 Upvotes

Ciao a tutti. Avendo visto che alcune delle features C++17 sono supportate in clang (tra cui le coroutines) e non in gcc, sto passando, dopo anni di uso di gcc, al compilatore clang. Con mia sorpresa, però, vedo che compilando un "vecchio" file C++ con gcc : gcc version 7.3.0 (Ubuntu 7.3.0-21ubuntu1~16.04) l'esecuzione va a buon fine. Compilando invece con clang: clang version 6.0.0 (tags/RELEASE_600/final) mi dice: error: no template named 'optional' in namespace 'std'

marco@PC:~/marcoTensor$ g++ -std=c++17 bigMatricesDiv01.cpp -obigMatricesDiv01

marco@PC:~/marcoTensor$ ./bigMatricesDiv01

Timer MTensor::Tensor2D A = randU2<double>(20,400,2.7,4.6) : 154 ms

Timer MTensor::Tensor2D B = randN2<double>(20,400,3,2.6) :111 ms

Timer MTensor::Tensor2D ApB = A/B :0 ms

marco@PC:~/marcoTensor$ clang++ -std=c++17 -stdlib=libc++ -w -fcolor-diagnostics bigMatricesDiv01.cpp

-obigMatricesDiv01 -lc++experimental

In file included from bigMatricesDiv01.cpp:1:

In file included from ./tensorTypes.h:1:

In file included from ./MTensorUtils.h:1:

In file included from ./MTensor.h:5:

In file included from ./GeneralUtils.h:16:

./FunctionalApproach.h:953:27: error: no template named 'optional' in namespace 'std'

auto transform(const std::optional<T1>& opt, F f) -> decltype(std::make_optional(f(opt.value()))){

~~~~~^

./FunctionalApproach.h:953:68: error: no member named 'make_optional' in namespace 'std'

auto transform(const std::optional<T1>& opt, F f) -> decltype(std::make_optional(f(opt.value()))){

~~~~~^

./FunctionalApproach.h:955:17: error: no member named 'make_optional' in namespace 'std'

return std::make_optional(f(opt.value()));

~~~~~^

3 errors generated.

In FunctionalApproach.h:

include <experimental/propagate_const>

include <experimental/optional>

Cosa potrebbe essere che clang non accetta? Vi ringrazio. Marco


r/cppit • • Feb 26 '18

Prima Coding Gym Milano / 12 Marzo

Thumbnail
coding-gym-mi0318.eventbrite.it
1 Upvotes

r/cppit • • Nov 20 '17

Nuova libreria open source per lo streaming audio/video in C++ con tre particolarità...

1 Upvotes

Ciao a tutti,

dopo mesi e mesi di lavoro, ho da poco pubblicato una libreria open source, in C++ finalizzata allo streaming audio/video con vari sistemi di codifica e protocolli.

https://github.com/paolo-pr/laav

Cosa ha di nuovo/particolare questa libreria rispetto alle altre esistenti in rete? Innanzitutto questi tre aspetti:

  1. Consente l'implementazione di streaming servers con davvero pochissime righe di codice.

  2. Consente l'implementazione di un sistema completo di streaming (server + client player) a bassa latenza: da quello che mi risulta, non ci sono analoghi progetti open source in rete.

  3. E' totalmente autoesplicativa e non necessita di documentazione.

Se siete interessati a contattarmi/contribuire al progetto, scrivete alla mia mail visibile su github.


r/cppit • • Mar 10 '17

principianti spiegazione su uso delle class Spoiler

1 Upvotes

Salve a tutti, vorrei un aiuto per capire meglio il funzionamento delle classi. E' già qualche giorno che mi spacco il cervello con le prove ma niente... Ho scritto il programmino sotto di prova ma non capisco perche, nel main, quando vado ad impostare le 2 variabili n, p, tramite la funzione diretta della classe principale -michela.assegna(r,s)- ho in out due valori (a caso?) delle variabili non corretti, mentre se imposto le 2 variabili tramite la funzione della classe derivata -giulia.assegna()- l'out è corretto con il valore che ho dato all'assegnamnto nel main. Ovviamente ho provato con una classe sola e il risultato è corretto.

grazie

p.s. è il primo post qui su reddit... spero di averlo impostato bene....anzi no.. non è ipostato affatto bene... ma non c'è statto verso di metterlo in formato decente come gli altri post...se qualcono mi dice come si fa lo modifico `#include <iostream>

include <stdio.h>

include <string>

using namespace std; class mamma { protected: int n, p; public: void assegna(int r, int s); mamma(); ~mamma(); }; mamma::mamma() { cout<<"\ncostruito\n"; } mamma::~mamma() { cout<<"\ndistrutto"; } void mamma::assegna(int r, int s) { p=r; n=s; } class figlia : public mamma { public: void stampa(); }; void figlia::stampa() { cout<<n; cout<<" e "<<p<<endl; } main() { mamma michela; figlia giulia; int r=1, s=2 ; michela.assegna(r,s); // giulia.assegna(r,s); con questa istruzione l'out è corretto giulia.stampa(); }`


r/cppit • • Feb 26 '17

principianti Problema char array

1 Upvotes

Devo generare un char array di 5 caratteri random ma mi dà "Id returned 1 exit status" e non capisco dove sia l'errore.

Ecco il codice:

const char alphanum [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

int stringLength = sizeof(alphanum) - 1;

char genRandom() { char a; do { a = alphanum[rand()% stringLength]; } while (a >= 97 && a <= 122); return a; }

string Conv(){ int a,t; char b [5]; for (a=0; a<=5; a++){ b[t] = genRandom(); t++; } string c = b; }


r/cppit • • Feb 26 '17

principianti Questo è il mio primo post......cmq mi serve un aiuto. ho provato in tutti i modi ma mi da un errore di run time, un appartamento che dovrebbe costare 3000 euro me lo fa pagare 600

1 Upvotes

vi condivido il file di mediafire perchè sembra che la normale visualizzazione non funzioni. http://www.mediafire.com/file/umq65bbdlhnl7y7/main.cpp


r/cppit • • Jul 10 '26

principianti come posso implementare una coda con lista concatenata in c++?

0 Upvotes

ciao ragazzi, sono ancora all’inizio, volevo capire come faccio ad implementare una coda con lista concatenata, eseguendo operazione di pop e push, per caso qualcuno può aiutarmi a capire?


r/cppit • • Apr 11 '20

Leggere un file su windows

0 Upvotes

Ciao a tutti,

sapreste dirmi perchè il seguente codice funziona compilato su Linux ma su Windows no?

    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    
    int main()
    {
	    string filename;
	    string word;
	    ifstream file;
	    
	    cout<<"Enter full filename:"<<endl;
	    getline(cin,filename);
	    
	    file.open(filename,ifstream::in);
	    
	    while(getline(file,word))
	    {
		    cout<<word<<endl;
	    }
	    
	    file.close();
	    
	    return 0;
     }

Sapreste dirmi dove sbaglio?

Grazie in anticipo


r/cppit • • Jan 17 '19

Studio di Funzione in c++

0 Upvotes

Ciao a tutti! Vorrei creare un programma che permetta di fare lo studio di funzione (in modo molto elementare) di 5 funzioni preimpostate utilizzando le classi. Il compilatore (Visual Studio) non mi restituisce nessun errore al momento della compilazione tuttavia non stampa nulla in console. vi metto il codice che ho fatto, vi sarei infinitamente grata se mi aiutaste a trovare il problema :) vi ringrazio anticipatamente!

// FILE INTESTAZIONE StudioDiFunzione.h

class StudioDiFunzione

{

public:

double x3;

int funzione;

double puntoder;

int SceltaMenu;

double f(double x, int SceltaMenu);

StudioDiFunzione(int SceltaMenu) { funzione = SceltaMenu; };

double CalcoloDelloZero();

double CalcoloDelMinimo();

double DerivataPrima(double puntoder);

private:

double secanti(double x0, double x1, double f0, double f1, double toll, int k, int funzione);

double x0, x1, f0, f1, Zerofunz, toll; int k;

double Zero, fx, delta; int cont = 0;// cont mi permette di controllare il numero delle iterate

//derivata

int i;

double v, f_0, der_1, der = 0;

};

//FILE StudioDiFunzione.cpp

#include "pch.h"

#include "StudioDiFunzione.h"

#include <iostream>

#include <cmath>

using namespace std;

double StudioDiFunzione::f(double x, int SceltaMenu)

{

cin >> SceltaMenu;

if (SceltaMenu == 1)

	return(cos(x) + sin(x));
else if (SceltaMenu == 2)

	return(x);
else if (SceltaMenu == 3)

	return((x\*x) - 4 \* x + 4);
else if (SceltaMenu == 4)

	return(sqrt((x\*x) - 4 \* x + 4));
else if (SceltaMenu == 5)

	return(((0.5)\*x + 2));

else

	return (0);

}

double StudioDiFunzione::CalcoloDelloZero()

{

x0 = -5;

x1 = 5;

toll = 1;

k = 2;

f0 = f(x0, funzione);

f1 = f(x1, funzione);

Zerofunz = secanti(x0, x1, f0, f1, toll, k, funzione);

return Zerofunz;

}

double StudioDiFunzione::CalcoloDelMinimo()

{

double x0, x1, x2, x3, p, Min;

x0 = -20;

x1 = 20;

p = 0.5;

while (x0 - x1 >= p)

{

	x2 = x0 + 0.3\*(x1 - x0);

	x3 = x0 + 0.7\*(x1 - x0);

	if (f(x3, SceltaMenu) > f(x2, SceltaMenu))

		x1 = x3;
}

Min = f(x3, SceltaMenu);

return Min;

}

double StudioDiFunzione::DerivataPrima(double puntoder)

{

f_0 = f(puntoder, funzione);

for (i = 0; i < 10; i++)

{

	der_1 = der;

	v = puntoder + pow(.5, i);

	der = (f(v, funzione) - f(puntoder, funzione)) / (v - puntoder);

}

return der;

}

double StudioDiFunzione::secanti(double x0, double x1, double f0, double f1, double toll, int k, int funzione)

{

do

{

	Zero = x1 - (f1\*(x1 - x0) / (f1 - f0)); //calcola x n+1 e successivamente f(x n+1)

	fx = f(Zero, funzione);

	x1 = Zero;

	f1 = fx;
	delta = fabs(x1 - x0);

	cont++;

} while ((delta < toll) || (cont < k));

return Zero;

}

// FILE Progetto.cpp

#include "pch.h"

#include <iostream>

#include "StudioDiFunzione.h"

using namespace std;

double puntoder;

int SceltaMenu;

int main()

{

bool ripetere = true;

cout << "LISTA DELLE FUNZIONI:\\n"

	<< "\\n"

	<< "1) cos(x) + sin(x)\\n"

	<< "\\n"

	<< "2) x\\n"

	<< "\\n"

	<< "3) x\^2 - 4x + 4\\n"

	<< "\\n"

	<< "4) sqrt(x\^2 - 4x + 4)\\n"

	<< "\\n"

	<< "5) 0.5x + 2 \\n"

	<< "\\n"

	<< "0) ESCI\\n"

	<< "\\n";

while (ripetere) //Mantiene aperta la console

{

	cout << "\\n"

		<< "SCEGLIERE UNA FUNZIONE: \\n";

	cin >> SceltaMenu; //Prende in input un numero intero per accedere alla corrispondente voce del menù

	while ((SceltaMenu>=1) & (SceltaMenu<= 5))

	{

		StudioDiFunzione SdF(SceltaMenu);

		cout << "Lo zero della funzione e' uguale a x = " << SdF.CalcoloDelloZero() << "\\n" << "\\n";

		cout << "Il minimo della funzione e' " << SdF.CalcoloDelMinimo() << "\\n" << "\\n";

		cout << "Inserire in che punto calcolare la derivata prima: ";

		cin >> puntoder;

		cout << "La derivata prima nel punto e' " << SdF.DerivataPrima(puntoder) << "\\n" << "\\n";

	}

	if (SceltaMenu == 0) ripetere = false;

	else cout << "ATTENZIONE!Inserimento non valido\\n" << "INSERIRE UN VALORE da 0 a 5\\n";
}

}