Poslao: 04 Dec 2013 16:30
|
offline
- feniks13
- Novi MyCity građanin
- Pridružio: 18 Jan 2013
- Poruke: 13
|
Pozdrav, interesuje me na koji nacin mogu unijeti neki tekst sa razmacima i da ga smjestim u neki dinamicki string, a da to nije pomocu getline funkcije.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 04 Dec 2013 23:52
|
offline
- Pridružio: 14 Jul 2012
- Poruke: 51
|
На пример p је адреса низа знакова чија се дужина фиксира током извршавања програма,
па дакле уместо getline() можеш и са gets().
char niz[некиброј];
gets(niz);
char *p = new char[strlen(niz)+1];
strcpy(p,niz);
Или детаљније са командне линије (овде се губе размаци):
#include <stdio.h>
#include <string.h>
int main (int argc, char** argv)
{
int i, s=0;
for(i=1;i<argc;i++) s=s+strlen(argv[i]);
char *p = new char[s+1];
strcpy(p,argv[1]);
for(i=2;i<argc;i++) strcat(p,argv[i]);
puts(p);
return 0;
}
|
|
|
|
Poslao: 05 Dec 2013 10:37
|
offline
- feniks13
- Novi MyCity građanin
- Pridružio: 18 Jan 2013
- Poruke: 13
|
Znam za ovaj nacin, tako sam radio u C-u , ali meni treba u C++ koristenjem biblioteke <iostream.h>
|
|
|
|
|
Poslao: 05 Dec 2013 12:49
|
offline
- feniks13
- Novi MyCity građanin
- Pridružio: 18 Jan 2013
- Poruke: 13
|
Profesor nam nije dao da koristimo tu funkciju, a u pitanju je bio kolokvijum.
.
Pa nisam nikako imao ideju kako da unesem string a da to nije pomocu getline funkcije.
|
|
|
|
Poslao: 05 Dec 2013 13:12
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Uzevši u obzir da je u pitanju C++, verovatno je hteo da koristite cin i cout + operatore >> i <<.
|
|
|
|
Poslao: 05 Dec 2013 16:18
|
offline
- Pridružio: 14 Jul 2012
- Poruke: 51
|
Мислим да је овако...
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string stringic,str;
system("chcp 1251"); //Windows
while(1){
cin>>stringic;
if (stringic.compare("q") == 0) break;
str=str+stringic+" ";
}
cout<<str<<"\n";
system("pause");
return EXIT_SUCCESS;
}
|
|
|
|
Poslao: 05 Dec 2013 19:34
|
offline
- feniks13
- Novi MyCity građanin
- Pridružio: 18 Jan 2013
- Poruke: 13
|
Napisano: 05 Dec 2013 18:16
Sigurno bi trebala biti neka kombinacija sa preklopljenim operatorom << i sa preklopljenim operatorom += ili +
Dopuna: 05 Dec 2013 19:34
vladasimovic ::Мислим да је овако...
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string stringic,str;
system("chcp 1251"); //Windows
while(1){
cin>>stringic;
if (stringic.compare("q") == 0) break;
str=str+stringic+" ";
}
cout<<str<<"\n";
system("pause");
return EXIT_SUCCESS;
}
Sve je super samo sto ja nisam smio da koristim funkcije iz <string.h>. Pise u napomeni.
|
|
|
|
Poslao: 05 Dec 2013 20:09
|
offline
- morando
- Građanin
- Pridružio: 19 Maj 2011
- Poruke: 297
|
Kad vec koristite cin zasto ne i njegove metode?
const std::size_t maxSize = 500;
char* sadrzaj = new char[maxSize]; // posto mora "dinamicki string", mada nije nesto "dinamican"
std::cin.getline(sadrzaj, maxSize);
Po meni je idiotizam unositi ovo sa sift operatorm >>
Ne znam sta ste konkretno imalu u programu da ucite? Kako ste inace unosili linije sa whitespace-ovima?
|
|
|
|
|