Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

#include<string>

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[11] Re: #include<string>

Messaggioda Foto UtenteRenzoDF » 25 ott 2011, 16:01

alev ha scritto:Qui dice che dipende appunto dal compilatore :D.

Grazie 1000 a tutti ! :ok:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

4
voti

[12] Re: #include<string>

Messaggioda Foto UtenteAjKDAP » 25 ott 2011, 16:06

Nel tuo caso tutto funziona anche senza l'include di "<string>" per il semplice motivo che l'implementazione della tua libreria standard include <string> dentro <iostream> e quindi basta dichiarate questo:

Codice: Seleziona tutto
#include <iostream>


per includere automaticamente <string>. Ecco perché funziona anche omettendo questa dichiarazione.

In certi casi, magari distribuendo il codice ad altri utenti potrebbe capitare che la loro libreria standard sia implementata diversamente dalla tua quindi è sempre buona norma includere tutti gli headers che utilizzi :ok:


Per un controllo veloce, elimina il "cout" e l'include "<iostream>", vedrai che a questo punto dovrai per forza includere "<string>" per poter utilizzare "append" e "replace".

Ciao!

EDIT: mi sono accorto ora che avevano già trovato il problema #-o
Avatar utente
Foto UtenteAjKDAP
1.255 2 6 9
Expert EY
Expert EY
 
Messaggi: 796
Iscritto il: 17 mag 2006, 0:13
Località: nella coda dei pronti

4
voti

[13] Re: #include<string>

Messaggioda Foto Utentexyz » 25 ott 2011, 16:36

Se usi il GCC come compilatore per capire quali include vengono letti basta usare opzione "--trace-includes":

Codice: Seleziona tutto
$> g++ --trace-includes source.cxx
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[14] Re: #include<string>

Messaggioda Foto UtenteT3STY » 30 ott 2011, 22:27

Spero di non essere troppo in ritardo, ma comunque, la libreria che stai cercando si chiamava string.h in GCC (GNU C Compiler) versione 4.3 e precedenti. Dalla versione 4.4 di GCC, in C++ tutte le librerie C sono state cambiate di nome usando la mask c$lib$; e quindi, la libreria string.h ora è diventata cstring.
Soluzioni:
Codice: Seleziona tutto
#include <string.h>
// Oppure
#include <cstring>


Non serve quindi la libreria iostream. Su Windows la maggior parte dei programmi utilizzano ancora le vecchie nomenclature, quindi in DevC++ o simili ti conviene usare string.h.

Spero sia di aiuto :)

EDIT
AjKDAP ha scritto:
Codice: Seleziona tutto
#include <iostream>

per includere automaticamente <string>. Ecco perché funziona anche omettendo questa dichiarazione.

iostream non include la libreria string... può solamente gestire le char-string (vettori di char).
Avatar utente
Foto UtenteT3STY
10 3
 
Messaggi: 41
Iscritto il: 30 ott 2011, 20:45

0
voti

[15] Re: #include<string>

Messaggioda Foto UtenteRenzoDF » 30 ott 2011, 23:46

T3STY ha scritto: ... iostream non include la libreria string... può solamente gestire le char-string (vettori di char).


La "mia" si, la "tua" non so :mrgreen:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[16] Re: #include<string>

Messaggioda Foto UtenteT3STY » 31 ott 2011, 0:11

Non saprei... noi a scuola usiamo GCC 4.6 sotto slackware, e non sono mai riuscito a utilizzare le funzioni string utilizzando solo la libreria iostream. Boh! :shock:
Avatar utente
Foto UtenteT3STY
10 3
 
Messaggi: 41
Iscritto il: 30 ott 2011, 20:45

0
voti

[17] Re: #include<string>

Messaggioda Foto UtenteRenzoDF » 31 ott 2011, 0:14

T3STY ha scritto:Non saprei... noi a scuola usiamo GCC 4.6 sotto slackware, e non sono mai riuscito a utilizzare le funzioni string utilizzando solo la libreria iostream. Boh! :shock:


Non esiste LA libreria iostream, esistono LE librerie iostream.
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[18] Re: #include<string>

Messaggioda Foto UtenteT3STY » 31 ott 2011, 0:18

Sì sì, intendevo quelle... tendo a unirle sempre sotto un unico nome, appunto iostream, ma so che sono più librerie :)
Avatar utente
Foto UtenteT3STY
10 3
 
Messaggi: 41
Iscritto il: 30 ott 2011, 20:45

0
voti

[19] Re: #include<string>

Messaggioda Foto UtenteRenzoDF » 31 ott 2011, 0:31

T3STY ha scritto:Sì sì, intendevo quelle... tendo a unirle sempre sotto un unico nome, appunto iostream, ma so che sono più librerie :)


Forse non mi sono spiegato bene, volevo dire che due librerie <iostream> possono essere diverse quanto a "contenuti".
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[20] Re: #include<string>

Messaggioda Foto UtenteT3STY » 31 ott 2011, 0:34

Ahhh... :D io pensavo ti riferissi alle varie componenti di iostream (istream, ios, ostream ect).
Comunque, così si spiega tutto! ;)
Avatar utente
Foto UtenteT3STY
10 3
 
Messaggi: 41
Iscritto il: 30 ott 2011, 20:45

Precedente

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti