Считывание маленьких слов из файла

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
djeak11
Сообщения: 4
Зарегистрирован: 04 апр 2016, 22:02

Надо было составить программу чтобы считывала текст из файла и выводила количество маленьких (4-8 символов) слов во всех строках текста

Код: Выделить всё

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
using namespace std;

int main(int argc, _TCHAR* argv[])
{
FILE *text;
char *filename = "C:\\Myfile.txt";
char buf[101] = "";
char commentStr[101] = "";

if (!(fopen_s(&text, filename, "r")))
{
while (fgets(buf, 100 , text))

printf_s("%s", buf);


char* pmin = NULL;
size_t pminlen = 0;

char* head;
char* tail;

while (*tail)
{
for (head = tail; *head && !isalnum(*head); ++head) { ; }

for (tail = head; *tail && isalnum(*tail); ++tail) { ; }

if (head < tail)
{
if ((pmin == NULL) || (pminlen > tail - head));
{
pmin = head;
pminlen = tail - head;
}
}
}
if (pmin)
{
printf("\n");
printf("min = %.*s\n", pminlen, pmin);
}

system("pause");

return 0;
}
ничего не выдает в чем ошибка ( как мне кажется их тут дофига)
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Только начал разбирать и тут же бросилось в глаза, что в самом начале в head попадает значение tail, но tail при этом никак не инициализирован. Грубая ошибка, которой достаточно чтобы всё не работало. Дальше даже не стал разбирать.

Очень рекомендую освоить дебагер. В студии достаточно нажать F10 и программа запустится в режиме отладки. После последующих нажатий F10 будет выполняться строчка за строчкой. На каждом шаге ты сможешь просмотреть все значения переменных и понять, что не так.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить