No opravdu je chování programu korektní dle syntaxe (ale asi ne podle toho, jak chceš aby se choval, to je jasné:-)). Aby fungoval dle Tvých představ (tj. vypsal napsané slovo), je třeba provést několik úprav:
1. Nejdříve změň deklaraci proměnné moje. V Tvém příkladu je tato proměnná typu char, což znamená že může obsahovat jeden znak. Ty však potřebuješ řetězec znaků, aby se do něj uložilo celé slovo. Takže jednoduše nadeklaruj pole charů, dejme tomu o 20 prvcích:
char moje[20];
2. Nyní máme kam uložit slovo napsané uživatelem. Ovšem s konstrukcí
cin.get();
cin >> moje;
cin.get();
se nám neuloží korektně - první volání cin.get() ze vstupního proudu načte jeden znak. Tuto metodu voláme bez argumentů, takže dojde k zahození znaku (tj. prvního znaku řetězce, který napsal uživatel). Při volání cin >> moje se ze vstupního proudu načetl další znak (když je proměnná moje typu char) a uložil se do proměnné moje (takže v ní máme ten druhý znak vstupu). Následné volání cin.get() opět načetlo a zahodilo další znak z výstupního proudu (což jsme ale už při výstupu programu nepocítili).
Takže protože chceme uložit celý řetězec do pole moje, použijeme pouze
cin >> moje;
Tím je již program opraven a bude fungovat jak má. Správný zdrojový kód:
#include <iostream>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
char moje[20];
cout << "Napis nejaky text" << endl;
cin >> moje;
cin.get();
cout << "Tohle je tvuj text:" << moje << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
EDIT: nj tak KIIV byl rychlejší:-D Příště se s tím nebudu asi tolik psát, páč jsem stejně sdělil to samé co on:-D