Форум программистов, компьютерный форум CyberForum.ru

Новая строка - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
09.06.2011, 23:43     Новая строка #1
Очень глупый вопрос) Куда влепить "\n", чтобы всегда вводить новые символы с новой строки? И чтобы результат был в виде одной строки, а не символ на строку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
main () {
 
unsigned char ascii;
int change = 0;
 
 for( ; ; ) {
 
       do {
 
    cin >> ascii;
 
    if (ascii >= 65 && ascii <= 90) {
      ascii += 32;
      cout << ascii;
      change++; }
 
    else if (ascii >= 97 && ascii <= 122) {
      ascii -= 32;
      cout << ascii;
      change++; }
 
       } while(ascii != '.');
 
   if(ascii == '.') {
     cout << "Change = "
      << change
      << "\n";
     break;     }
 
               }
 
return 0; }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 23:43     Новая строка
Посмотрите здесь:

Новая функция в С++ C++
дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. C++
строка string и строка char C++
Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо и справа н C++
Дана строка символов. Проверьте,является ли данная строка палиндромом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 3
Регистрация: 15.02.2011
Сообщений: 353
10.06.2011, 02:31     Новая строка #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
int main(){
    unsigned char ascii;
    int change = 0;
 
    while(true){
       do{
            cin >> ascii;
            if (ascii >= 65 && ascii <= 90){
                ascii += 32;
                cout<<ascii;
                change++;
            }
            else if(ascii >= 97 && ascii <= 122){
                ascii -= 32;
                cout<<ascii;
                change++;
            }
        }while(ascii != '.');
        cout<<"\n";
        if(ascii == '.') {
            cout<<"Change = "<<change;
            break;
        }
    }
 
    return 0;
}
Миниатюры
Новая строка  
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
10.06.2011, 13:23  [ТС]     Новая строка #3
OLLEGATOR, спасибо) но ничего не изменилось. После первого раза, результат выводится на новую строку как и у меня, но все последующие разы новые символы нужно вводить в одну строку с прошлым результатом. А хотелось бы так ввод данных - результат - ввод данных с новой строки
Изображения
 
mysnk
 Аватар для mysnk
22 / 21 / 3
Регистрация: 09.06.2011
Сообщений: 76
10.06.2011, 13:36     Новая строка #4
Не очень могу уловить суть задачи.

Ввод символов до '.', их вывод с новой строки. Ввод символов с новой строки...(сколько это продолжать нужно?)
zheleznyak_oleg
12 / 12 / 1
Регистрация: 03.01.2011
Сообщений: 76
Записей в блоге: 1
10.06.2011, 13:42     Новая строка #5
Короче.....для новой строки
cout << endl;
или
cout <<"\n";
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
10.06.2011, 14:15  [ТС]     Новая строка #6
mysnk Вводим данные, нажимаем интер - происходит преобразование и инкрементируется change. Цикл по сути бесконечный, но если в входных данных будет точка, то программа завершается и выводится сколько было преобразований т.е. change

zheleznyak_oleg Это понятно Но куда именно в цикл засунуть?

Думаю с goto поэкспериментировать, сейчас примерно так представляю

C++
1
2
3
4
5
goto test; // в if и else if
test: 
      cout << "\n"; goto begin; // вне for(; ;)
begin:
        for( ; ; ) // на начало
метка в метке допустима?)
mysnk
 Аватар для mysnk
22 / 21 / 3
Регистрация: 09.06.2011
Сообщений: 76
10.06.2011, 14:56     Новая строка #7
GoTo лучше вообще нигде не использовать. Следует избегать операторов безусловного перехода.

Вот набросал решение твоей задачки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
using namespace std;
 
int main(){
    unsigned char str[255];
        int change = 0;
    bool ExitFlag = false;
    int i;
    
    while(!ExitFlag)
    {
        cin >> str;
        for (i=0; str[i] != '\0';i++ )
        {
            if (str[i] == '.')
            {
                cout << "\nChange = " << change << '\n';
                ExitFlag = true;
                break;
            }
            if (str[i] >= 65 && str[i] <= 90)
            {
                str[i] += 32;
                                cout<<str[i];
                                change++;
            }
            else if(str[i] >= 97 && str[i] <= 122)
            {
                str[i] -= 32;
                                cout<<str[i];
                                change++;
                        }
        }
        cout<<"\n";
        }
    return 0;
}
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
10.06.2011, 15:15  [ТС]     Новая строка #8
mysnk Спасибо! Теперь работа программы меня устраивает
Можно вопрос по вашему алгоритму?
Зачем вы присвоили ExitFlag = false ? Когда можно было true , а в "точке" присвоить false. Не пришлось бы лишний ! в while писать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 15:24     Новая строка
Еще ссылки по теме:

Даны строка S, символ C и строка S0. Необходимо после каждого вхождения символа C в строку S вставить строку S0 C++
C++ С ++ разделяющий пробел и новая строка
Преобразование строка-число-строка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mysnk
 Аватар для mysnk
22 / 21 / 3
Регистрация: 09.06.2011
Сообщений: 76
10.06.2011, 15:24     Новая строка #9
Конечно можно, но когда видишь имя ExitFlag, первая ассоциация, что это флаг выхода. Значит когда он true - выходим.

Все для облегчения чтения кода. Не всегда только для себя пишешь.
Yandex
Объявления
10.06.2011, 15:24     Новая строка
Ответ Создать тему
Опции темы

Текущее время: 11:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru