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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 02:33   #1
Ксюха21
 
Регистрация: 21.02.2011
Сообщений: 4
Восклицание РАБОТА С ФАЙЛОМ ЗАДАНЫМ С КОНСОЛИ

Добрый день! Помогите, пожалуйста с задачей -- я в С++ совсем чайник. Просто хотя бы подскажите каким методом делать или пример какой-нибудь дайте.
Надо, чтобы программа принимала 1 параметр командной строки -- имя файла, в котором содержится список дел.
Я так поняла, что это выглядит приблизительно так: (подскажите, если что не правильно)


#include <iostream>
#include <fstream>
#define MAX 105
using namespace std;
int main( void )
{
FILE *file;
char fname[30];
char result;
cout << "Enter file name" << endl;
gets (fname);
file = fopen(fname,"r");
if (file==0 && result != EOF) {
cout << "Can't open file" << fname << endl;
return 0;
}

int i=0;
while ( i<MAX) {
result = fgetc(file);
cout << result;
i++;
}
fclose (file);
}


(Простите за ошибки -- я действительно совсем новичок и делала все наобум) ->
А в файле должен быть список дел -- по одному на строку в формате:
<Начальное время> <Конечное время> <дело>. Пример:

12:30 16:40 работа
13:00 14:00 обед
16:30 17:00 встреча

А вывести программа должна в консоль время начала и конца пересечения событий и сами события, пример:

13:00 14:00 работа + обед
16:30 16:40 работа + встреча

(Я понимаю это как структуру, я знаю приблизительно какая структура для выполнения этого задания нужна, если вводить входные данные через консоль, но как символы считываемые с файла связать со элементами структуры -- не знаю. структура но не знаю как связать считывание с файла и работу со структурными элементами).
Помогите, пожалуйста, заранее огромное спасибо!!
Ксюха21 вне форума Ответить с цитированием
Старый 21.02.2011, 04:56   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Параметр командной строки — это параметр, который вводится до запуска программы, а не во время работы. Вот пример:
Код:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

int main(int argc, char *argv[])
{
    // Если в командной строке больше или меньше двух параметров (первый - имя
    // программы, второй - путь к файлу) - выдаём ошибку и выходим
    if(argc != 2) {
        std::cerr << "Bad args!" << std::endl;
        std::exit(1);
    }
    
    // Связываем входной поток с файлом, указанным в параметре командной строки
    std::ifstream fin(argv[1]);
    
    if(fin.fail()) {
        std::cerr << "Bad file!" << std::endl;
        std::exit(1);
    }
    
    std::string str;
    std::string tmp;
    
    // Читаем файл в строку str
    while(fin >> tmp) {
        str += tmp + ' ';
    }
    
    // Выводим его содержимое на экран
    std::cout << str << std::endl;
}
И раз уж изучаешь C++, не используй работу с файлами C (FILE и т.п.), используй работу с файлами C++ (ifstream и т.п.).

Задача не очень проста, если делать её функциональным программированием. Ты классы проходила?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 21.02.2011, 11:56   #3
Ксюха21
 
Регистрация: 21.02.2011
Сообщений: 4
По умолчанию

Спасибо огромное, я наконец-то поняла, что значит "программа принимает параметр с консоли". Вообще пока учу и прохожу С, но эту задачу надо сделать для других целей на С++, поэтому и сложновато. С классами разобраться мне пока сложно. И не всегда знаю, где употребляю сишные операторы и функции.
Спасибо за ответ, я сейчас переварю все и буду разбираться.
Ксюха21 вне форума Ответить с цитированием
Старый 21.02.2011, 12:13   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
сишные операторы
операторы в этих языках одинаковые
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовым курсором в консоли devl Общие вопросы C/C++ 9 28.02.2010 13:03
Работа с файлом ! PPikaso Помощь студентам 3 29.10.2009 14:21
Работа с ClientSocket и ServerSocket из консоли D_E_N Работа с сетью в Delphi 6 28.07.2009 00:27
Циклы с заданым числом повторений Анютка...... Паскаль, Turbo Pascal, PascalABC.NET 2 01.12.2008 10:51
Работа с меню в консоли kanja Общие вопросы C/C++ 4 24.11.2008 22:37