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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 03:28   #1
a10nan
Пользователь
 
Регистрация: 21.08.2009
Сообщений: 15
По умолчанию Массивы и файлы.

Доброго времени суток уважаемые форумчане.
Есть не большёй код который надо модифицировать как выразился учитель.
Код:
#include <iostream>
#include <Windows.h>
using namespace std;

int main (int argc, char *argv[])
{
  int i = 0;
  char hello[13] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\n' };
  while(i<13){
              cout << hello[i];
              i++;
              Sleep(100);
              }
  cout << endl;
  cout << "Press ENTER to continue..." << endl; 
  cin.get();
  return 0;
}
Задача следующая, надо переделать код для работы с файлами, т.е. программа должна считать строки из файлов, и поместить их в массив типа char, затем определить размер массива, ну и естественно вывести темже методом что в коде.

Не прошу решать задачу за меня ибо это наглость, прошу лишь подсказать куда копать и если можно ссылку на материал.

За ранее примного благодарен.
Errare humanum est! - Человеку свойственно ошибаться!
a10nan вне форума Ответить с цитированием
Старый 13.05.2010, 06:39   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Хех, задача наподобие "взять бумажный самолетик, переделать его в 154"
Ну а что касается ее решения - то здесь, как водится, два пути. Первый - стандартные функции Си, второй - файловые потоки C++.
Если будете использовать первый, то вам нужны будут функции fopen, fgetc (или fgets - это не посимвольное чтение, а построчное, но вам вроде fgetc подойдет больше), fclose. Почитать можно здесь.
Если выберете второй вариант - то выглядеть это будет так:
Код:
std::ifstream FileStream("test.txt");
std::string s;
FileStream >> s;
std::cout << s;
То есть после открытия файлового потока вы работаете с ним точно так же, как с потоком cin, только имя потока меняется. Можно почитать про это в книжках (например, в Страуструпе) или здесь.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 14.05.2010, 04:25   #3
a10nan
Пользователь
 
Регистрация: 21.08.2009
Сообщений: 15
По умолчанию

Огромное спосибо помог, задача оказывается решается очень даже просто, да и в массив не обязательно добавлять, хотя и это тоже не проблема уже)
Вот что я наваял благодаря твоему ответу, за что и получил зачёт)
Код:
#include <iostream>
#include <stdio.h>
#include <Windows.h>
using namespace std;
 
int main(void)
{
    char r;
    FILE* stream;    
    if((stream = fopen("C:\\123\\data.dat","r")) != NULL)
    {
        do {
          r = fgetc(stream);
          if (r != EOF);
          cout << r;
          Sleep(100);
        } while (r != EOF);
        fclose(stream);
        cout << endl << "Press ENTER to continue..." << endl; 
        cin.get();
    }
    else
    {
        cout << "Can't find file!!!" << "\n";
        cout << "Press ENTER to continue..." << endl; 
        cin.get();
    }
}
Errare humanum est! - Человеку свойственно ошибаться!
a10nan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ФАЙЛЫ И МАССИВЫ PlayHard Помощь студентам 0 08.05.2010 14:54
PascalABC. массивы и файлы Gorny Помощь студентам 1 01.12.2009 12:14
Pascal: 2мерные массивы, файлы bycahf Помощь студентам 3 31.05.2009 20:49
Паскаль...Файлы, Одномерные массивы Extrem_um Помощь студентам 10 12.04.2008 18:21