Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > присвоение значения переменной


Автор: loopz 8.10.2012, 14:58
вопрос мой вытекает из предыдущей темы....собственно вот небольшой код для преобразования прописных символов в строчные
Код

#include "stdafx.h"
#include<iostream>
#include<cctype>
using namespace std;
int main(){
    cout<<"Vvedite frazu ili vybereti @ dlya vyhoda"<<endl;
    char temp[100];
    int i;
    char d;
    for(i=0;i<100;i++){
        cin.get(temp[i]);
        char p;
        p=temp[i];
        if (p=='@')
            break;
        putchar(toupper(p));
    }
    cout<<temp;
    return 0;
}
 
все работает как и задумывалось но глянув на код у меня возник вопрос вот по этому 
Код

p=temp[i];
        if (p=='@')
            break;
        putchar(toupper(p));
    }
    cout<<temp;

по коду ясно что переменной P присваивается значение temp[i] и в последствии это значение модернизируется в значение в верхнем регистре но вот вопрос почему я отправляю в поток вывода cout<<temp; и выводит именно измененный вариант ....хотя по логике он должен был остаться в переменно p

Автор: borisbn 8.10.2012, 16:24
Цитата(loopz @  8.10.2012,  14:58 Найти цитируемый пост)
cout<<temp; и выводит именно измененный вариант

не верю (С). ты до cout << temp; выводишь 
Цитата(loopz @  8.10.2012,  14:58 Найти цитируемый пост)
 putchar(toupper(p));

для каждого символа. вот это ты и видишь.

Автор: math64 8.10.2012, 22:33
Ты смешиваешь stdio и iostream. Так делать нельзя. Попробуй делать ввод-вывод одной библиотекой

Автор: loopz 9.10.2012, 10:18
да произошла ошибка я взял эту строку прям из примера по обработке символов думал он нужен 
Код

 putchar(toupper(p));

а оказывается это эквивалентно cout ....спс за объяснение ....но тогда вопрос а как обработать символ но не выводя его то есть без cout или Puts то есть чтобы он остался внутри программы ...но уже в строчном виде
строка типа

 
Код

char toupper(p) ;


ожидаемого эффекта не дает 

Автор: borisbn 9.10.2012, 10:45
Код
temp[ i ] = toupper( p );


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)