mboost-dp1
skrivning direkte ind i vector!
- Forside
- ⟨
- Forum
- ⟨
- Programmering
#3
Man kan også spørge om hvordan man slår sig i hovedet med en hammer så det gør mindst ondt.
vector<char> duer ikke.
Første forsøg:
Andet forsøg:
Sammenlign med:
Man kan også spørge om hvordan man slår sig i hovedet med en hammer så det gør mindst ondt.
vector<char> duer ikke.
Første forsøg:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char> v(4, ' ');
cout << "Enter 4 letters and return: ";
for(int i = 0; i < 4; i++)
{
cin >> v[i];
}
for(int i = 0; i < v.size(); i++)
{
cout << v[i];
}
cout << endl;
return 0;
}
Andet forsøg:
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
int main()
{
vector<char> v;
cout << "Enter some letters and return: ";
char buf[1000];
cin.getline(buf, sizeof(buf));
for(int i = 0; i < strlen(buf); i++)
{
v.push_back(buf[i]);
}
for(int i = 0; i < v.size(); i++)
{
cout << v[i];
}
cout << endl;
return 0;
}
Sammenlign med:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Enter some letters and return: ";
string line;
getline(cin, line);
cout << line << endl;
return 0;
}
Jeg er 100 % enig med arne_v, men jeg vil dog lige sige at det kan gøres nemmere.
Om det så er pænt er noget helt andet:
Om end v ikke automatisk kan resize sig selv i tilfælde af at v er for kort, hvorimod en string kan hvis brugt sammen med std::getline.
Om det så er pænt er noget helt andet:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char> v( 1000, '\0' );
cout<<"Enter some letters and return: ";
cin.getline( &v.front(), v.size() );
cout<<&v.front()<<endl;
return 0;
}
Om end v ikke automatisk kan resize sig selv i tilfælde af at v er for kort, hvorimod en string kan hvis brugt sammen med std::getline.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.