Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
bgm123
41 / 41 / 27
Регистрация: 29.01.2013
Сообщений: 277
1

Подсчёт строк работает некорректно

15.07.2013, 10:03. Просмотров 534. Ответов 5
Метки нет (Все метки)

При следующих входных данных, получаются неверные результаты:

1) 123456
1123123123
345345^z

на выходе получаю 2

2) 123456
1234564564
5656
4564564^z

на выходе получаю 3

C
1
2
3
4
5
int count  = 0;
 
while((ch = getchar()) != EOF)
if(ch == '\n') count++
printf("%i\n", count);
Почему так, предполагаю, что почему-то символа конца потока не срабатывает. Он почему-то интерпретируется как другой символ ('<-').
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2013, 10:03
Ответы с готовыми решениями:

Сортировка данных двух текстовых файлов. Счетчик количества строк работает некорректно
Задача:имеется 2 файла с данными на игроков 2 команд каждая строка состоит из...

Подсчёт строк (горячие клавиши)
Добрался в изучении языка программирования си до функций getchar и putchar. Написав программу...

Подсчёт строк, столбцов, символов
Подскажите в чём ошибка. Пишет что ожидает имя типа через строку после while. #include &lt;stdio.h&gt;...

Некорректно работает if
Здравствуйте. У меня проблема. Если я указываю такое условие: if ( (i != k) &amp;&amp; (j != l) ) то if...

Некорректно работает программа на С/С++
Программа написанная на С++ должна вычислять факториал числа а в итоге не делает ничего кроме как...

5
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
15.07.2013, 12:12 2
У переменной ch должен быть тип int.
0
bgm123
41 / 41 / 27
Регистрация: 29.01.2013
Сообщений: 277
15.07.2013, 12:16  [ТС] 3
Цитата Сообщение от lazybiz Посмотреть сообщение
У переменной ch должен быть тип int.
Не в этом дело. По какой-то причине при вводе например строки и в конце символа ctrl+z (конец потока в windows) этот символ интерпретируется неправильно. Кроме того, в этой строке не обнаруживается символ '\n'. Почему?
0
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
15.07.2013, 12:17 4
Покажи код целиком.
0
bgm123
41 / 41 / 27
Регистрация: 29.01.2013
Сообщений: 277
15.07.2013, 12:18  [ТС] 5
Вот вы попробуйте запустить программу и ввести данные:
ввод 1: 123456 enter
ввод 2: 123456 ctrl + z
ввод 3: sdd enter
ввод 4: ctrl + z

будет правильно, если ответ будет 3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
 
int main(){
    int count  = 0;
    int ch;
 
    while((ch = getchar()) != EOF)
        if(ch == '\n') count++;
 
    printf("%i\n", count);
    return 0;
}
0
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
15.07.2013, 12:26 6
Нажатие Ctrl-Z в конце строки не способствует тому что драйвер терминала посылает EOF. В начале строки - да.
Ctrl-Z так же не посылает перевод строки ('\n'), т.ч. 3 тут никак не получается, Enter ты ведь нажал всего 2 раза (не после Ctrl-Z).
1
15.07.2013, 12:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2013, 12:26

Функция работает некорректно
Здравствуйте! Задача, написать функцию myfuc по заданному вызову ее int main(int argc, char...

Некорректно работает #define
По идее, если что-нибудь ввести, то программа должна попытаться выполнить это как команду то есть...

Некорректно работает прогрмма
Программа выдает с a2 по a4 нули, хотя там должны быть значения отличные от нуля. Помогите...


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

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

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