Показать сообщение отдельно
Старый 11.01.2011, 20:01   #1 (permalink)
photonr
Новичок
 
Регистрация: 11.01.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите со строками в C++

Вот такая задача:
Написать программу которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа.

Есть задача сделанная с немного другим условием, строки содержащие двузначные числа наоборот не выводит, и вроде немного неправильно, трехзначные тоже не выводит, вот она

Цитата:
#include <iostream>
#include <stdio.h>
#include <ctype.h>

using namespace std;

#define STRING_LEN 70 // длина строки

int main()
{
FILE *file;
char buff[STRING_LEN];
unsigned int n, i, dig;

file = fopen("file.txt", "r"); // открываем файл для чтения
if(!file) // если не открыли
return -1; // выходим
while(fgets(buff, STRING_LEN, file)) // читаем все строки до конца файла
{
dig = 0; // флаг наличия двузначного числа
n = strlen(buff); // получаем длину строки
if(n >= 2) // если длина строки больше или равно 2
{
for(i = 0; i != n; i++) // проходим по всей строке
{
// устанавливаем значение флага присутствия двузначного числа
dig = isdigit(buff[i]) // текущий символ - цифра
& isdigit(buff[i+1]); // и следующий за ним символ - цифра
if(dig) // если есть двухзначное число
break; // выходим из цикла
}
if(!dig) // если двузначного числа в строке нет
cout << buff; // выводим строку в консоль
}
}
fclose(file); // закрываем файл
return 0; // выходим
}
photonr вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070