Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 04:35   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Еще можно открыть первый файл как бинарный и "ходить" по нему seekg.
http://www.cplusplus.com/reference/i...istream/seekg/
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.01.2014, 04:50   #12
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

BDA
Считаете что будет удобней ?
ИМХО ведь только лишняя обработка прибавится при считывании файла.

Последний раз редактировалось Базиля; 10.01.2014 в 04:52.
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 05:07   #13
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Позиция у Вас это number
Вам остается только обратиться к этой позиции через оператор индексации.
Ну допустим это будет так:
Код:
...

cout << text[ number ];

...
Вставить это в цикл заместо комментария.
а тип у text и number кокой должен быть в объявлении их? ну т.к. мы будем считывать из файла 2 в number он будет явл. "буфером временного хранения"... значит он объявляется как например char number[20].. только же он не char
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 05:08   #14
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Еще можно открыть первый файл как бинарный и "ходить" по нему seekg.
http://www.cplusplus.com/reference/i...istream/seekg/
о, не ребят)) мне чтоб попроще))
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 05:18   #15
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

text - текст из первого файла, я думаю ничего страшного не случится если Вы будете использовать класс string. Ну или если душе угодно - С строки.
number - int.
Цитата:
в number он будет явл. "буфером временного хранения"...
А зачем Вам буфер?
Ведь можно сразу считывать и после обращаться к символу текста.
Тогда никакой буфер и не потребуется.
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 05:23   #16
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
text - текст из первого файла, я думаю ничего страшного не случится если Вы будете использовать класс string. Ну или если душе угодно - С строки.
number - int.
я так и делала... значит проблема в другом.. ругается на number в строке cout << text[ number ];..пишет,что выражение должно иметь тип указатель на объект. я что-то вообще уже ничего не понимаю) мы же оба файла открывать должны?)

Последний раз редактировалось Shenan; 10.01.2014 в 05:25.
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 05:24   #17
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

покажите код
Цитата:
я что-то вообще уже ничего не понимаю) мы же оба файла открывать должны?)
Поочередно.
Сперва первый файл с текстом, а после того как считали текст открываем уже второй с числами.

Последний раз редактировалось Базиля; 10.01.2014 в 05:30.
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 05:30   #18
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Код:
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int number;
	char text;
	ifstream f("E:\\BSUIR\\OAiP\\Files\\Files\\file2.txt");
	
	while ( !f.eof() ) {
        f >> number;
	       	cout << text[ number ];
	}

	return 0;
}
как-то так
Shenan вне форума Ответить с цитированием
Старый 10.01.2014, 05:35   #19
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Как я и предполагал
char text - у Вас не есть указатель, Вы не имеете права применять не к указателю оператор индексации.
Ну или как принято говорить, char text это не массив символов, это просто один единственный символ.

Вам сперва нужно считать текст из 1-ого файла в этот самый массив, вот только я его не вижу (считывания).
Базиля вне форума Ответить с цитированием
Старый 10.01.2014, 05:43   #20
Shenan
Пользователь
 
Регистрация: 27.10.2010
Сообщений: 21
По умолчанию

Код:
int _tmain(int argc, _TCHAR* argv[])
{
	int number;
	char text[50];
	ifstream f("E:\\BSUIR\\OAiP\\Files\\Files\\file1.txt");
	f>>text;
	f.close();
	ifstream f1("E:\\BSUIR\\OAiP\\Files\\Files\\file2.txt");
	while ( !f.eof() ) {
        f >> number;
	       	cout << text[ number ];
	}

	return 0;
}
примерно так? ну и еще добавить вывод этого всего
только оно у меня ничего не выводит

Последний раз редактировалось Shenan; 10.01.2014 в 05:54.
Shenan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами interprise777 Общие вопросы C/C++ 5 14.05.2013 18:22
Работа с файлами VENOMIK Помощь студентам 1 17.02.2012 12:19
работа с файлами на с++ fireridlle Помощь студентам 3 09.02.2011 14:06
Работа с файлами JamS007 Общие вопросы C/C++ 4 27.06.2009 22:03
Работа с файлами в С++ ai\ekcah^p Помощь студентам 2 21.06.2009 16:16