Выполняя некоторые простые упражнения, у меня теперь есть огромное сомнение в отношении iostream и указателей.Передача указателя char на cin и cin.get()
Это в 2 несколько различных файлов, которые я сделал (они оба работают):
Файл 1 принимает входной сигнал, как «Меня зовут # Марко» и COUT печатает «MyNameIs»
int main(){
using namespace std;
char* ch=new char[256];
int count=0;
cout <<"Enter chars, # to quit:\n";
cin >> ch;
while(*ch!='#'){
cout << ch;
++count;
cin >> ch;
}
cout << endl << count << " characters read\n";
return 0;
}
файла 2 получает тот же вход, как и раньше, но на этот раз соиЬ печатает пространства тоже:
int main(){
using namespace std;
char* ch=new char[256];
int count=0;
cout <<"Enter chars, # to quit:\n";
cin.get(*ch);
while(*ch!='#'){
cout << *ch;
++count;
cin.get(*ch);
}
cout << endl << count << " characters read\n";
return 0;
}
То, что я не понимаю, почему во втором файле в строке 8, я должен написать «соиЬ < < * ch "вместо" cout < < ch "как в первом. В самом деле, если я использую «соиЬ < < ч» в файле 2, все это я получаю кучу случайных символов (символы взяты из адреса указателя я думаю)