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

Выводятся на печать смайлики вместо элементов строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Игра "Однорукий бандит". Кольцевая очередь. Двусвязный список http://www.cyberforum.ru/cpp-beginners/thread1490692.html
Здраствуйте. Задание: "Создать игру "Однорукий бандит". При нажатии кнопки Enter происходит "вращение" трех барабанов (количество вращений каждого из них выбирается случайно), на которых...
C++ _kbhit() как удалить символ, когда нажимаем клавишу? #include <iostream> #include <conio.h> using namespace std; void main() { char point = '*'; do { if (_kbhit()) { http://www.cyberforum.ru/cpp-beginners/thread1490668.html
C++ Сформировать массив по заданной формуле и упорядочить по значению сренеарифметического
Рассчитать значения 12-ти элементов массива Y по формуле {y}_{i}={i}^{2}-2i+19,3cosi. Вывести на экран этот массив и новый, разместив в нем первоначально элементы, значения которых меньше...
C++ Вывести на экран таблицу чисел
2. 1 1 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 ………………………………. n n n n n n n ….n n n n n n n n ….n
C++ Вывести на экран следующую таблицу чисел http://www.cyberforum.ru/cpp-beginners/thread1490621.html
Помогите, пожалуйста! Нужно составить таблицу в С++. Сейчас летняя практика, С++ изучаю 2-й день, еще почти ничего не знаю. Вывести на экран следующую таблицу чисел: 1 1 1 1 3 3 3 3...
C++ Найти суммы чисел, записанных в строке, между нулями Дана строка чисел например: 1 2 4 0 4 4 5 0 32 21 35 0 3 0. Нужно найти суммы чисел между нулями. Но в С++ я новичек и не знаю как сие реализовать подробнее

Показать сообщение отдельно
OrangeSound
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24

Выводятся на печать смайлики вместо элементов строки - C++

30.06.2015, 19:12. Просмотров 552. Ответов 3
Метки (Все метки)

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
39
40
41
42
43
44
45
46
47
#include <stdio.h>
 
#define MAXLINE 1000
 
int getline(char line[], int maxline);
void copy(char to[], char from[]);
 
/* печать самой длинной строки */
main()
{
    int len; /* Длина текущей строки */
    int max; // длина максимальной из просмотренных строк 
    char line[MAXLINE]; // текущая строка 
    char longest[MAXLINE]; // самая длинная строка
    max = 0;
    while ((len = getline(line, MAXLINE)) > 0)
        if (len > max) {
                max = len;
            copy(longest, line);
        }
    if (max > 0) // была ли хоть одна строка?
        printf("%s", longest);
    return 0;
}
 
/* getline: читает строку в s, возвращает длину */
int getline(char s[], int lim)
{
    int c, i;   
    for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
        s[i] = c;
    if (c == '\n') {
        s[i] = c;
        ++i;
    }
    s[i] = '\0';
    return i;
}
 
/*копирует из from в to; to достаточно большой */
void copy(char to[], char from[])
{
    int i;
    i = 0;
        while (to[i] = from[i] != '\0')
        ++i;    
}
Программа выдает нужную строчку, нужной длины, но заместо символов печатает смайлики...
И один вопрос

C++
1
2
3
4
5
6
    int c, i;   
    for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
        s[i] = c;
    if (c == '\n') {
        s[i] = c;
        ++i;
Почему мы сначала исключаем '\n' и прибавляем ++i, но потом мы делаем обратную функцию
C++
1
2
3
    if (c == '\n') {
        s[i] = c;
        ++i;
хотя могли бы это сделать не исключая '\n' изначально?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.