PDA

View Full Version : [C++] Ripetizione cin in Matrice di stringhe


AntoGT
19-02-2016, 18:45
Salve, in un programma che gestisce una matrice (o anche un vettore) di stringhe, all'interno dei for, non è possibile far ripetere il cin secondo una certa condizione?

Nell'esempio con l'array il cin si dovrebbe ripetere finchè nella stringa non venga immesso un numero tra 0 e 10, ma perchè da errore?


#include<iostream>
#include<string>
using namespace std;
int main()
{
int i;
string array[5];
for(i=0;i<5;i++)
{
cin>>array[i];

while(array[i]<0 || array[i]>10)
{
cin>>array[i];
}
}
return 0;
}

AntoGT
19-02-2016, 20:05
string non si definisce in quel modo... quello che vuoi fare tu con la parte rimanente del programma si risolve usando un array nativo:

int array[5];

Grazie, allora in origine dovevo creare una matrice dove nella prima colonna inserivo delle stringhe, quindi numeri e caratteri uniti, mentre nelle restanti 8 caselle solo dei numeri (matricole e voti correlati in pratica). Però mi sono accorto che non la matrice string non potevo effettuare una ripetizione del cin, con il while, se veniva inserito un carattere che non era un numero dopo la prima colonna. Quindi ho aperto un nuovo progetto per provare con un vettore, quindi come si può ripetere l'input con le stringhe? Perchè è definita in modo sbagliato? Mi serve una matrice char o cosa?

AntoGT
20-02-2016, 09:57
Sto usando string perchè non mi viene in mente un altro modo per associare una stringa con i voti a più interi positivi, se provo a compilare quel codice dà questo errore:


[Error] no match for 'operator<' (operand types are 'std::string {aka std::basic_string<char>}' and 'int')