Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - prendere stringhe con scanf
Forum - C/C++ - prendere stringhe con scanf

Avatar
alex1995 (Normal User)
Expert


Messaggi: 212
Iscritto: 27/01/2011

Segnala al moderatore
Postato alle 13:05
Martedì, 12/07/2011
Questo topic è stato chiuso dal moderatore

ciao a tutti ho deciso di imparare il c++ dopo aver provato il c# e sto leggendo una guida e ho visto come si usa la funzione scanf e mi è venuto in mente di catturare con scanf una stringa ma non ci sono riuscito, ho cercato su google e questo è il codice che ho fatto e non funziona.

Codice sorgente - presumibilmente C++

  1. #include <StdaFx.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.         char carattere[10];
  9.         scanf("%c", &carattere[10]);
  10.         cout << carattere;
  11.         return 0;
  12. }



sapreste aiutarmi


PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
3
Down
V
Segnala al moderatore
Postato alle 13:08
Martedì, 12/07/2011
Una stringa, non un carattere ...

Codice sorgente - presumibilmente C/C++

  1. char stringa[10];
  2.         scanf("%s", stringa);
  3.         cout << stringa;




grazie :) - alex1995 - 12/07/11 15:48
Se la stringa contiene spazi allora: scanf("%[^\n]s", stringa); - Xaratroom - 12/07/11 21:33


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
kopiro91 (Member)
Newbie


Messaggi: 20
Iscritto: 23/07/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 18:39
Martedì, 12/07/2011
allora innanzitutto chiariamo le cose, C e C++.
scanf è una funzione del C, per il C++ si usa il CIN.

Poi, in C la "stringa" come tipo definito non esiste, sono array di caratteri (come è logico pensare), quindi il loro tipo è char*, ovvero un puntatore ad un char, oppure come array vero e proprio char[].

Quindi per catturare una stringa:
Codice sorgente - presumibilmente C/C++

  1. char word[20];
  2. scanf("%s", word);



mentre in C++
Codice sorgente - presumibilmente Plain Text

  1. std::string word;
  2. cin>>word;


La scanf la puoi usare sia in C/C++ ... non c'è alcun obbligo. E' vero che il C++ mette a disposizione altri tipi di dati, oggetti e altro, ma non si devono per questo escludere le funzionalità del C. - nessuno - 12/07/11 19:26


PM