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

Построчное чтение целых чисел из текстового файла с занесением в массив для анализа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ О кодировке бинарных файлов http://www.cyberforum.ru/cpp-beginners/thread1764470.html
Здравствуйте;Тут такая проблема:Как заполнять бинарные файлы? Просто я если создаю обычный файл и пихаю туда обычные числа то он считывает их как некий набор цифр; А если сначала записать , а потом...
C++ Запись массива в двоичный файл Здравствуйте. Нужно организовать заполнение двоичного файла случайными целыми числами в интервале . Какая ошибка в моей программе?? #include "stdafx.h" #include "stdlib.h" #include "iostream"... http://www.cyberforum.ru/cpp-beginners/thread1764469.html
C++ Класс матрица, описывающий двумерный массив
Здравствуйте. Хочу разобраться и создать класс. Имеется код, но мне он кажется слишком сложным, как можно упростить его для лучшего понимания и можно ли? // Матрица.cpp : Defines the entry point...
C++ Преобразовать массив, расположив сначала все положительные элементы, а потом - все отрицательные
Преобразовать массив таким образом, чтобы сначала располагаись все положительные элементы, а потом-все отрицательные (элементы, равные 0, считать положитеьными). методом перебора
C++ Умножение двух больших чисел http://www.cyberforum.ru/cpp-beginners/thread1764431.html
дано два 40 значных числа,нужно перемножить их http://e-maxx.ru/algo/big_integer от сюда и других тем с данного форума код не подходит. Не понимаю принципа работы
C++ Определить объединение из двух полей Первое поле - массив из двух байт, второе - слово Помогите написать программу( лучше с комментариями чтобы разобраться) Определить объединение из двух полей Первое поле - массив из двух байт, второе - слово Ввести случайное целое число в диапазоне... подробнее

Показать сообщение отдельно
lawr
367 / 261 / 125
Регистрация: 09.05.2014
Сообщений: 769
18.06.2016, 17:14
ну вот как-то так переводим:
C++
1
2
3
4
5
6
7
8
9
10
11
        while (fin.get(ch)){
            if (ch >= 48 && ch <= 57)
            {
                num *= 10;
                num += (ch - 48);
            }
            else {
                std::cout << num << ch;
                num = 0;
            }
        }
но я думаю можно и не переводить. число в диапазоне от 20 до 29- это символ с кодом 50, за которым следует любой другой символ в диапазоне [48; 57], после которого идет не числовой символ. число от 1 до 9 по аналогии. короче, переписываешь из файла в массив char (или гораздо удобней писать строку в string а string-и пихать в vector) и там уже ищешь по условию- так по крайней мере мне это все видится. от новичка новичку если чо

Добавлено через 3 часа 47 минут
вот, чтоб было понятно что я имел ввиду:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
bool num(char ch){
    if (ch >= '0'&&ch <= '9')
        return true;
    return false;
}
bool GoodString(std::string s){
    int q = 0;
    if (s[0] != '2'||!num(s[1])||s[2]!=' ')
        return false;
    for (int i = 3; i < s.size(); i++)
        if (num(s[i]) && !num(s[i - 1]) && !num(s[i + 1]))
        {
            q++, i++;
            if (q == 2)
                return true;
        }
    return false;
}
using namespace std;
 
int main()
{
    std::string Temp;
    std::vector<std::string> Table;
    ifstream fin("c:\\input.txt");
 
    if (fin.is_open()) {
 
        ifstream fin;
        fin.open("c:\\input.txt");
        while (!fin.eof()){
            getline(fin, Temp);
            if (GoodString(Temp))
                Table.push_back(Temp);
        }
 
        fin.close();
        ofstream fout("c:\\output.txt");
        for (int i = 0; i < Table.size(); i++)
            fout << Table[i] << '\n';
        fout.close();
        system("pause");
    }
    else {
        cout << "File not found" << endl;
        system("pause");
    }
 
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.