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

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

Войти
Регистрация
Восстановить пароль
 
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
#1

Вывод слов из файла длина которых больше N - C++

30.12.2012, 14:34. Просмотров 388. Ответов 2
Метки нет (Все метки)

Есть файл текстовый: rez.txt в нём находятся слова :
raz
dvas
trisz
chetirez
seven
eleven
abra
Вот написанная мною програмка для считывания слов из файла и вывода на экран слов больше N. Компилируется без ошибок но работает не совсем корректно, т.е. если ввожу N=5 она выводит и слова которые равны 5, а мне нужно только которые больше подскажите пожалуйста в чём моя ошибка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int main (int argc, char * argv[]){
    FILE *fp;
    int i,N;
    char str_file[SIZE];
    printf("Vvedite N : \n");
    scanf("%d",&N);
    fp=fopen("rez.txt", "r");
    if(fp!=NULL){
        for (i=0; i<strlen(str_file); i++){
            fgets(str_file,sizeof(str_file),fp);
            if (strlen(str_file)>N)
                printf(str_file);
        }
    }
    else 
        printf("Nevozmojno otkritb fayl");
    fclose(fp);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 14:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод слов из файла длина которых больше N (C++):

Найти количество последовательностей положительных чисел, длина которых больше 7 - C++
Задачка такая - заполнить одномерный массив элементами от -50 до 50. Найти количество последовательностей положительных чисел, длина...

Сформировать предложение из слов, длина которых более 7 символов - C++
Дан массив слов. Сформировать новое слово из символов слов массива, стоящих после последнего символа ‘*’ в слове. Сформировать предложение...

Удаление из строки слов, длина которых меньше заданной - C++
Удалить из строки слова,длина которых меньше заданной,решите пожалуйста,за ранее спасибо)))

Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. - C++
Собственно вот проблема..Мне помогали писать данную программу но она что-то все равно не работает. Она просто тупо зависает. Может кто...

Подсчитать количество слов, длина которых не превышает заданного числа - C++
Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть...

Определить количество слов в строке, длина которых меньше заданного числа К - C++
Помогите пожалуйста с задачкой... ПЛИЗ... Дана строка текста, в которой слова разделены пробелами. Необходимо: - определить...

2
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
30.12.2012, 14:50 #2
при таком способе считывания в считанную строку попадает ещё и символ перехода на новую строку. Никакого крминала не будет если написать if (strlen(str_file)>N-1) или, в качестве новогодней развлекушечки if (strlen(str_file+1)>N)

Добавлено через 1 минуту
кроме того, fgets(str_file,sizeof(str_file),fp); - не верная строка. sizeof(str_file) - всегда 4 на 32х разрядный системах, не зависимо от размера массива. Засылайте туда SIZE
1
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
30.12.2012, 15:01  [ТС] #3
всёравно не корректно работает, при N=4 выводит как при N=3

Добавлено через 1 минуту
fgets(str_file,sizeof(SIZE),fp); когда так делаю вообще не работает

Добавлено через 7 минут
Вроде теперь правильно работает просто в файле был лишний пробел
а как организовать вывод на экран если в файле будет строка : фвфыв фывфвы павпавпмсч псммс?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2012, 15:01
Привет! Вот еще темы с ответами:

Сформировать стек всех слов, длина которых меньше либо равна 5 - C++
Помогите с программой на c++. Дан текст, состоящий не менее чем из 7 слов. Сформировать стек всех слов, длина которых меньше либо равна 5.

Превратить массив целых чисел размерности N, удалив из массива все серии, длина которых больше k - C++
Помогите плиз Превратить массив целых чисел размерности N, удалив из массива все серии, длина которых больше k. Вроде написала...

Посчитать количество слов в указанном тексте, длина которых не превышает три символа - C++
Нужно посчитать количество слов в указанном тексте, длина которых не превышает три символа

Удалить строки, в которых больше 7ми слов - C++
Друзья. Вторую неделю ломаю голову чем и как можно решить эту задачу. Есть текстовый документ на 5 миллионов строк (cp1251), есть...


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

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

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