mimmo87 (Normal User)
Newbie
Messaggi: 6
Iscritto: 01/10/2008
|
Sarà che il mio libro è fatto malissimo,ma è possibile che non spiega come fare per poter salvare frasi inserite da tastiera in una stringa??
se io volessi inserire ad esempio il mio nome e cognome(metto printf("inserisci nome e cognome:"))e poi volessi salvare sia nome che cognome in una stringa di lunghezza massima 20.. come dovrei fare?
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Codice sorgente - presumibilmente C/C++ |
char nomecognome[20];
cin >> nomecognome;
|
Nota: printf è una funzione del C ANSI e non dovrebbe essere usata con C++.
Ultima modifica effettuata da pierotofy il 02/10/2008 alle 19:03
|
|
WARRIOR (Ex-Member)
Guru
Messaggi: 627
Iscritto: 30/03/2007
|
Postato originariamente da pierotofy:
Codice sorgente - presumibilmente C/C++ |
char nomecognome[20];
cin >> nomecognome;
|
Ricordando però, che facendo in questo modo, il programma inserirà nella stringa i dati fino a quando non immetterai un carattere di spaziatura.
Se inserisci:
'nome cognome'
memorizzerà solo la stringa 'nome'.
|
|
mimmo87 (Normal User)
Newbie
Messaggi: 6
Iscritto: 01/10/2008
|
ti ringrazio!ho una confusione allucinante..il programma che devo fare è in C però io uso dev C++..non pensavo ci fosse tutta questa differenza!
|
|
^JAVA^ (Ex-Member)
Pro
Messaggi: 93
Iscritto: 06/12/2007
|
Postato originariamente da mimmo87:
ti ringrazio!ho una confusione allucinante..il programma che devo fare è in C però io uso dev C++..non pensavo ci fosse tutta questa differenza! |
Ti consiglio di lasciare stare Dev-C++ e di passare a Visual C++.
Codice sorgente - presumibilmente C/C++ |
char arr[20];
gets(arr);//Leggo l' input da tastiera
if(strlen(arr)>=20){//Implemento un banale
//controllo per verificare la lunghezza
//della stringa
printf("%s","La stringa inserita è troppo lunga.\nPremere invio per uscire\n");
getchar();
exit(1);
}
printf("%s\n",arr);//Stampo l' output a video
|
Ciao. Ultima modifica effettuata da ^JAVA^ il 02/10/2008 alle 22:22 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Postato originariamente da WARRIOR:
Ricordando però, che facendo in questo modo, il programma inserirà nella stringa i dati fino a quando non immetterai un carattere di spaziatura.
|
Grazie per avermi corretto, ricordavo che succedeva con lo scanf ma avevo il dubbio col cin.
|
|
gioser (Normal User)
Pro
Messaggi: 111
Iscritto: 03/10/2008
|
se devi realizzare programma in C++, non puoi usare la cin. Devi usare la scanf()
#include <stdio.h>
int main()
{
char nome[100];
char cognome[100];
puts("dammi nome e cognome");
scanf("%s%s", nome, cognome);
printf("nome=%s cognome=%s", nome, cognome);
return 0;
}
|
|
mimmo87 (Normal User)
Newbie
Messaggi: 6
Iscritto: 01/10/2008
|
grazie mille!davero!Ora funziona!!
|
|
munkaka (Member)
Pro
Messaggi: 119
Iscritto: 07/09/2008
|
non è vero che non puoi usare il cin con c++, e usando cin.getline() prende anche gli spazi, per esempio per prendere una stringa di 20 caratteri con spazi si puo fare:
Codice sorgente - presumibilmente C/C++ |
char nome[21];
cin.getline(nome,21);
|
|
|