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

Как считывать информация с файла по байтам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка векторов в неразветвленном цикле http://www.cyberforum.ru/cpp-beginners/thread671408.html
Помогите пожалуйста решить задачку... Задание. Составить и испытать циклическую программу для получения результата, указанного в заданном варианте задания. Всюду далее набор индексированных...
C++ [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc() Пишу программу для обхода бинаронго дерева поиска. Программа написана и кажется даже работает, но только в консоли. Решил выводить дерево на экран, для наглядности, используя OpenGL (как раз его в... http://www.cyberforum.ru/cpp-beginners/thread671402.html
C++ Сжать массив путём удаления нулей
Нужно написать программу которая сжимает массив путём удаления нулей (если они есть), не используя вспомагательный массив. Буду очень благодарен!!!!!
Есть ли аналог isalpha, только для string C++
Добрый вечер! Как проверить, что введены только буквы, без символов, isalpha не прокатило:curtsy: , тока для символов cout<<"enter a word:"<<endl; cin>>word; while (true) { if(isalpha(word)) ...
C++ Первый класс. Функция-член http://www.cyberforum.ru/cpp-beginners/thread671384.html
Добрый день! Пытаюсь собрать свой первый класс, но, кажется, не до конца понимаю всей сути. #include <stdio.h> #include <iostream> #include <string> #include <conio.h> #include <fstream> ...
C++ Массивы и циклы Суть задачи: Двумерный массив, содержащий равное число строк и столбцов, называется магическим квадратом, если суммы чисел, записанных в каждой строке, каждом столбце и каждой из двух больших... подробнее

Показать сообщение отдельно
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2012, 09:50
Вот этот код считает из файла, вашего вида, каждое слово (как значение int) в вектор. 80 заменяется на 00.
Код
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
#include<iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
 
int main()
{
ifstream f("file.txt");
 
stringstream s;
string str;
string str1;
string str2;
vector <int> v;
 
while (!f.eof())
{
    char ch;
    while (f.get(ch)) // пропускаем до ':'
        if (ch == ':') break;
    for (int i = 0; i < 8; i++) // читаем 8 пар строк
    {
        f >> str1 >> str2;
        if (str1 == "80") str1 = "00"; // 80 заменяем на 00
            str = str1 + str2;
        int a = 0;
        s << hex << str; // помещаем строку как число в hex виде
        s >> a; // извлекаем десятичное чсло
        s.clear();
        v.push_back(a); // число в вектор
    }
}
 
for (int i = 0; i < v.size(); i += 8) // выводим вектор по 8 чисел в строке
{
    for (int j = i; j < i + 8; j++)
    {
        cout << v[j] << " ";
    }
    cout << endl;
}
 
 system("pause");
 return 0;
}
Больше не знаю, что предложить. Координаты Y не понятны. Если коорднаты X, как я понял, задаются одним байтом, то Y двумя? К тому, что большие получаются. В конце второй строки, координата X = 80 03 (03), а следующая Y = 25 00 (9472). Так и должно быть?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru