Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
#1

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

09.06.2011, 23:43. Просмотров 1442. Ответов 8
Метки нет (Все метки)

Очень глупый вопрос) Куда влепить "\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; }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 23:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Новая строка (C++):

С ++ разделяющий пробел и новая строка - C++
С ++ разделяющий пробел и новая строка Как отличить при считывании из файла чисел Допустим 3 -5 6 8 2 0 8 -1 10 3 11 5 ...

Дана строка. Подсчитать сколько раз первая строка входит во вторую - C++
Дана строка. Подсчитать сколько раз первая строка входит во вторую. Например: вводим &quot;при&quot; (строка должна вводиться с клавиатуры, как на...

Дана строка символов. Проверьте,является ли данная строка палиндромом - C++
Парни нужна помощь,нужен код решения этой задачи на языке с++. Дана строка символов. Проверьте,является ли данная строка палиндромом.

Почему строка, считанная из файла и такая же строка в программе не равны, хотя они, вроде бы, одинаковы? - C++
Есть две строки. MSK=&quot;Москва&quot; и from, считанная из текстовика, через getline Для проверки вывожу эти обе строки, на первый взгляд...

дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. - C++
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка...

Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо и справа н - C++
Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо...

8
OLLEGATOR
Linux-оид
116 / 65 / 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;
}
0
Миниатюры
Новая строка  
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
10.06.2011, 13:23  [ТС] #3
OLLEGATOR, спасибо) но ничего не изменилось. После первого раза, результат выводится на новую строку как и у меня, но все последующие разы новые символы нужно вводить в одну строку с прошлым результатом. А хотелось бы так ввод данных - результат - ввод данных с новой строки
0
Изображения
 
mysnk
22 / 21 / 3
Регистрация: 09.06.2011
Сообщений: 76
10.06.2011, 13:36 #4
Не очень могу уловить суть задачи.

Ввод символов до '.', их вывод с новой строки. Ввод символов с новой строки...(сколько это продолжать нужно?)
0
zheleznyak_oleg
14 / 14 / 1
Регистрация: 03.01.2011
Сообщений: 77
10.06.2011, 13:42 #5
Короче.....для новой строки
cout << endl;
или
cout <<"\n";
0
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( ; ; ) // на начало
метка в метке допустима?)
0
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;
}
1
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
10.06.2011, 15:15  [ТС] #8
mysnk Спасибо! Теперь работа программы меня устраивает
Можно вопрос по вашему алгоритму?
Зачем вы присвоили ExitFlag = false ? Когда можно было true , а в "точке" присвоить false. Не пришлось бы лишний ! в while писать
0
mysnk
22 / 21 / 3
Регистрация: 09.06.2011
Сообщений: 76
10.06.2011, 15:24 #9
Конечно можно, но когда видишь имя ExitFlag, первая ассоциация, что это флаг выхода. Значит когда он true - выходим.

Все для облегчения чтения кода. Не всегда только для себя пишешь.
1
10.06.2011, 15:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 15:24
Привет! Вот еще темы с ответами:

Даны строка S, символ C и строка S0. Необходимо после каждого вхождения символа C в строку S вставить строку S0 - C++
Есть код... string s, s0; char c; cout &lt;&lt; &quot;Введите строку s, s0 и символ c: &quot;; getline(cin, s); ...

Преобразование строка-число-строка - C++
Здравствуйте, можете объяснить или показать на примере, как можно из строки извлечь числа, чтобы потом можно было с ними работать и каких...

Строка string и строка char - C++
Ребят помогиме. В общем задание такое дана строка типа string и строка char которая содержит символ к. В общем если в строке типа String ...

Создать класс строка и производный класс битовая строка, не работает переопределение операций - C++
Здравствуйте уважаемые форумчане.Мне очень нужна помощь в разработке класса.Сам класс вроде работает но вот 1 задание к нему неработает...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru