Xpovos
Utente Attivo
- Messaggi
- 294
- Reazioni
- 4
- Punteggio
- 38
[C++] Vettore non accetta costante
Il codice è questo: https://ideone.com/JHQB1E
Il problema a quanto pare è che il vettore non accetta le costanti.
Oltre alla possibile soluzione (cercando di rimanere se possibile con la costante), mi dareste dei consigli su come "migliorare" il codice?
Vecchie domande:
Il codice è questo: https://ideone.com/JHQB1E
Il problema a quanto pare è che il vettore non accetta le costanti.
Oltre alla possibile soluzione (cercando di rimanere se possibile con la costante), mi dareste dei consigli su come "migliorare" il codice?
Vecchie domande:
Grazie a tutti, la mia intenzione era quella di ricreare una funzione simile a setw perché mi sembrava una cosa apparentemente semplice. Ad ogni modo, qualcuno potrebbe spiegarmi o magari indirizzarmi a qualche documento che spieghi come si facciano a comprendere i documenti ufficiali (per fare un esempio: string - C++ Reference ), particolarmente questo tipo di scritture:
[TABLE="width: 0"]
[TR="class: even"]
[TH="align: right"]default (1)[/TH]
[TD]string();[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]copy (2)[/TH]
[TD]string (const string& str);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]substring (3)[/TH]
[TD]string (const string& str, size_t pos, size_t len = npos);[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]from c-string (4)[/TH]
[TD]string (const char* s);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]from buffer (5)[/TH]
[TD]string (const char* s, size_t n);[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]fill (6)[/TH]
[TD]string (size_t n, char c);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]range (7)[/TH]
[TD]template <class InputIterator>
string (InputIterator first, InputIterator last);[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]initializer list (8)[/TH]
[TD]string (initializer_list<char> il);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]move (9)[/TH]
[TD]string (string&& str) noexcept;[/TD]
[/TR]
[/TABLE]
Cioè tutte queste parole "costanti" che usano i documenti per spiegare le funzioni, inclusa quella "e" commerciale nella seconda riga..
Domanda 2
Dando un occhiata alle stringhe provavo il getline :
Il programma non finisce di richiedere un input, a meno che non inserisca dei numeri equivalenti al delim-1. Allora mi stampa tutto ciò che ho scritto, mi sembra anomalo, se tolgo il campo del delimitatore ovviamente fila tutto liscio. E quel -1 è per il carattere finale nullo? Non era solo nei vettori di caratteri (stringhe nel C) ?
Vecchie domande
[TABLE="width: 0"]
[TR="class: even"]
[TH="align: right"]default (1)[/TH]
[TD]string();[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]copy (2)[/TH]
[TD]string (const string& str);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]substring (3)[/TH]
[TD]string (const string& str, size_t pos, size_t len = npos);[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]from c-string (4)[/TH]
[TD]string (const char* s);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]from buffer (5)[/TH]
[TD]string (const char* s, size_t n);[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]fill (6)[/TH]
[TD]string (size_t n, char c);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]range (7)[/TH]
[TD]template <class InputIterator>
string (InputIterator first, InputIterator last);[/TD]
[/TR]
[TR="class: odd"]
[TH="align: right"]initializer list (8)[/TH]
[TD]string (initializer_list<char> il);[/TD]
[/TR]
[TR="class: even"]
[TH="align: right"]move (9)[/TH]
[TD]string (string&& str) noexcept;[/TD]
[/TR]
[/TABLE]
Cioè tutte queste parole "costanti" che usano i documenti per spiegare le funzioni, inclusa quella "e" commerciale nella seconda riga..
Domanda 2
Dando un occhiata alle stringhe provavo il getline :
Codice:
char delim = '5';
getline(std::cin, frase,delim);
std::cout << frase;
Vecchie domande
Il codice è questo:
L'errore è evidenziato in rosso e recita:
Come faccio a risolvere? Cioè oltre a staccare il cout dalla funzione, come posso fare in modo che la funzione ritorni un certo numero di spazi? Ho messo il tipo di funzione in string e ho provato ad inserire il ciclo for nel return ma non me lo accetta.
Codice:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
void spazio(int numero){
for (int i = 1; i <= numero; i++){
cout << " ";
}
}
int main()
{
cout << "ciao" [FONT=arial black][B][COLOR=#ff0000]<<[/COLOR][/B][/FONT] spazio(5) << "ciao2";
system("PAUSE");
return 0;
}
L'errore è evidenziato in rosso e recita:
Codice:
error C2679: '<<' binario: non è stato trovato alcun operatore che accetti un operando destro di tipo 'void'. È anche possibile che non vi siano conversioni accettabili.
Come faccio a risolvere? Cioè oltre a staccare il cout dalla funzione, come posso fare in modo che la funzione ritorni un certo numero di spazi? Ho messo il tipo di funzione in string e ho provato ad inserire il ciclo for nel return ma non me lo accetta.
Ultima modifica: