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

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

Восстановить пароль Регистрация
 
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 118
30.12.2012, 14:34     Вывод слов из файла длина которых больше N #1
Есть файл текстовый: 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 14:34     Вывод слов из файла длина которых больше N
Посмотрите здесь:

C++ найти количество слов в которых две или больше буквы "с"
C++ Перепишите из входного файла в выходной только те строки, длина которых меньше 70
задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная) C++
C++ Удаление из строки слов, длина которых меньше заданной
C++ Удалить строки, в которых больше 7ми слов
C++ Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
C++ Превратить массив целых чисел размерности N, удалив из массива все серии, длина которых больше k
C++ Неправильный вывод. Преобразовать массив: сначала расположить элементы, модуль которых не больше 1

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
30.12.2012, 14:50     Вывод слов из файла длина которых больше N #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
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 118
30.12.2012, 15:01  [ТС]     Вывод слов из файла длина которых больше N #3
всёравно не корректно работает, при N=4 выводит как при N=3

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

Добавлено через 7 минут
Вроде теперь правильно работает просто в файле был лишний пробел
а как организовать вывод на экран если в файле будет строка : фвфыв фывфвы павпавпмсч псммс?
Yandex
Объявления
30.12.2012, 15:01     Вывод слов из файла длина которых больше N
Ответ Создать тему
Опции темы

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