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

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

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

Подсчёт количества чисел в строке - C++

28.01.2013, 22:53. Просмотров 1114. Ответов 21
Метки нет (Все метки)

Подсчитать количество чисел в первой строке из текстового файла:
код написала, всё хорошо считывается из текстового файла и выводится на экран, но увы с подсчётом чисел пока не получается реализовать алгоритм
В текстовом файле находятся например:
1-я строка : 0,1 0,2 0,3 0,4
2-я строка: 0,5 0,6 0,7 0,8 0,9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
    FILE *fp;
    int count=0;
    char ch;
    if((fp=fopen(argv[1],"r"))==NULL){
        printf("Takogo fayla nety!!!\n");
        return 0;
    }
    while((ch=getc(fp))!='\n'){
        printf("%c",ch);
        if(isdigit(ch) && !isdigit(ch+1) && (ch+1)!=',')
            count++;
    }
    printf("\nFayl %s imeet v 1 stroke %d chisel\n",argv[1],count);
    return 0;
}
Добавлено через 2 часа 35 минут
help
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2013, 22:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчёт количества чисел в строке (C++):

Подсчёт количества слов в строке - C++
Помогите разобраться в проблемке. Программа должна считывать текст из файла по слову и копировать его в другой. При этом счётчик их...

Подсчёт количества знаков препинания в строке - C++
Здравствуйте. Помогите пожалуйста написать простейший алгоритм подсчёта количества знаков препинания в строке. C#. Заранее спасибо

Подсчёт количества символов в строке (cin.getline) - C++
Здравствуйте! Задача такова: нужно подсчитать количество символов 'a' в строке. Помогите, пожалуйста, найти ошибки в коде: //...

Подсчёт количества выпадений чисел в массиве. - C++
Имеется одноразрядный массив а с набором чисел в нем . Порядок чисел в массиве рандомный. То есть приблизительно может быть вот так: ...

подсчёт количества членов в наиболее длинной подпоследовательности из одинаковых чисел - C++
Для последовательности чисел подсчитать количество членов в наиболее длинной подпоследовательности из одинаковых чисел. Окончание ввода –...

Подсчёт слов в строке. Подсчёт символов в словах строки - C++
Начал изучение строк в С++. Решая задачу по поиску количества строк и количеству указанных символов упёрся лбом в стену. Теорию понял:...

21
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
29.01.2013, 14:29  [ТС] #16
Я под себя чуть переделала чтоб было более понятно вот эти куски:
int state = 0;
state = 1;
state = 0;
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
29.01.2013, 14:30 #17
Вот ради примера, такая же самая программа только на с++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <string>
#include <cctype>
using namespace std;
 
int main()
{
    ifstream input_file("input.txt", ifstream::in);
    if (!input_file.good()) {
        cerr << "Coldn't open file.\n";
        exit(1);
    }
 
    string line;
    bool state = false;
    size_t count = 0;
 
    getline(input_file, line);
    for (size_t i = 0; i <= line.size(); ++i) {
        if (isdigit(line[i]))
            state = true;
        else if (state) {
            state = false;
            ++count;
        }
    }
 
    cout << "We have " << count << " digits into the first line.\n";
 
    input_file.close();
 
    return 0;
}
0
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
29.01.2013, 14:32 #18
state, это я как понимаю, флаг, который принемает два значения, поэтому лучше, такие вещи делать bool, а не int. Сделайте обратно.
0
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
29.01.2013, 14:33  [ТС] #19
Спасибо переделаю!
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
29.01.2013, 14:35 #20
Цитата Сообщение от Apelsin199 Посмотреть сообщение
state, это я как понимаю, флаг, который принемает два значения, поэтому лучше, такие вещи делать bool, а не int. Сделайте обратно.
Ну это она просто под С затачивает. Хотя в С99 можно использовать bool смело включив заголовок <stdbool.h>
0
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
29.01.2013, 14:38 #21
Цитата Сообщение от xtorne21st Посмотреть сообщение
Ну это она просто под С затачивает. Хотя в С99 можно использовать bool смело включив заголовок <stdbool.h>
Я про то, что если флаг принимает только два значения, то лучше его делать bool, а не как не int. Это мне еще на первом курсе препад в голову вбил.
2
r36
235 / 232 / 6
Регистрация: 16.03.2011
Сообщений: 750
29.01.2013, 17:07 #22
Вот без isdigit:
C++
1
2
3
4
5
6
int i,sum=0;
char buf[]="q0text123456text789\r";
for(i=0;buf[i]!=0x0d;++i){
if((buf[i]>='0')&&(buf[i]<='9')){sum++;} 
}
cout<<sum;
0
29.01.2013, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2013, 17:07
Привет! Вот еще темы с ответами:

Подсчет количества простых чисел в строке - C++
Доброго времени суток. Необходимо написать программу, которая бы подсчитывала количество простых чисел в тексте в заданной строке. ...

Подсчёт количества подстрок - C++
Посмотрите пожалуйста нормально ли написана функция, которая считает количество подстрок? int SearchSubString(char *s1,char *s2){ ...

Подсчёт количества символов - C++
Здравствуйте, возник вопрос: Почему в функцию не передаётся вся строка, например я пишу &quot;qwerty qwerty&quot; то он не передаёт второй &quot;qwerty&quot;...

Подсчёт количества слов в тексте - C++
Помогите пожалуйста с кодом. Для данного задания: Дан текст произвольной длины, оканчивающийся точкой. Текст состоит из слов,...


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

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

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