Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
1

Программа принимает в командной строке имя файла и распечатывает его на экране, ошибка в стрелке

04.04.2012, 22:54. Показов 3481. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа принимает в командной строке имя файла и распечатывает его на экране

Haskell
1
2
3
4
5
6
7
import IO
-- программа просит ввести имя файла и распечатывает его на экране
printFile = do putStr "Укажите файл: "
name <- getLine
fromHandle <- openFile name ReadMode
contents <- hGetContents fromHandle
hPutStr stdout contents
на такой код выдает ошибку

C:\lab.hs:4:6: parse error on input `<-'
не могу понять, что ей не нравиться? подскажите пж

Добавлено через 4 минуты
Haskell
1
2
3
4
5
6
7
import IO
 
printFile = do putStr "adres Faila kakov: "
               name <- getLine
               fromHandle <- openFile name ReadMode
               contents <- hGetContents fromHandle
               hPutStr stdout contents
извиняюсь за вопрос нашла ошибку в построение,
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2012, 22:54
Ответы с готовыми решениями:

Программа, которая принимает в командной строке имя файла и распечатывает его на экране
Программа, которая принимает в командной строке имя файла и распечатывает его на экране.

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

Программа, принимающая в командной строке число n и имя файла и выводящая на экран первые n строк фай- ла
Программа, принимающая в командной строке число n и имя файла и выводящая на экран первые n строк...

Поиск заданного файла в заданной папке (путь и имя файла задаются в командной строке)
Добрый вечер! Как сделать поиск заданного файла в заданной папке(путь и имя файла задаются в...

10
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
04.04.2012, 23:00 2
Только не забывай закрывать (hClose) файл через дескриптор.
Цитата Сообщение от White Luna Посмотреть сообщение
Программа принимает в командной строке имя файла
По-моему, тут тоже надо getArgs использовать из твоего предыдущего вопроса.
1
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
04.04.2012, 23:21  [ТС] 3
Код
import IO

printFile = do putStr "adres Faila kakov: "
               name <- getLine
               fromHandle <- openFile name ReadMode
               contents <- hGetContents fromHandle
               hPutStr stdout contents
	       hClose stdout
добавила и после вывода взялась ошибка
<stdout>: hFlush: illegal operation (handle is closed)

с чем может быть связано, хотя выводит все так? просто смущает
0
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
04.04.2012, 23:31 4
Цитата Сообщение от White Luna Посмотреть сообщение
hClose stdout
Ты шутница, закрываешь стандартный файловый поток вывода.
Haskell
1
hClose fromHandle
1) Открываешь файл
2) Считываешь содержимое
3) Закрываешь файл
1)-2) пункты ты сделала, без 3) всё нормально работало, потому Haskell взял на себя заботу по освобождению захваченных ресурсов (закрытию файла) по окончании работы программы. Но иногда всё работает не так хорошо (например, в случае исключений), поэтому хорошая практика - явно закрывать открытые файловые потоки.
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.04.2012, 04:54 5
Haskell
1
2
3
import System.Environment (getArgs)
 
main = getArgs >>= readFile . head >>= putStr
Код
~/samples/haskell $ ghc --make sample.hs -o cat
[1 of 1] Compiling Main             ( sample.hs, sample.o )
Linking cat ...
~/samples/haskell $ ./cat sample.hs 
import System.Environment (getArgs)

main = getArgs >>= readFile . head >>= putStr
~/samples/haskell $
2
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
05.04.2012, 15:01 6
Цитата Сообщение от Nameless One Посмотреть сообщение
main = getArgs >>= readFile . head >>= putStr

Не по теме:

Реквестирую объяснения readFile и >>= для ТС. :)

0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.04.2012, 15:05 7
Да запросто:
http://hackage.haskell.org/pac... v:readFile
http://hackage.haskell.org/pac... 2--62--61-

Или нужно объяснить, что такое монада?
0
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
05.04.2012, 15:11 8
Цитата Сообщение от Nameless One Посмотреть сообщение
Или нужно объяснить, что такое монада?
Да-да, объясни, пожалуйста, это же вроде какой-то эндофунктор (или экзофунктор вроде), нет?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.04.2012, 15:12 9
bokunopico, это моноид в категории эндофункторов
1
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
05.04.2012, 15:19 10
А комонада? Это комоноид?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.04.2012, 15:38 11
Цитата Сообщение от bokunopico Посмотреть сообщение
А комонада? Это комоноид?
не знаю, я их не разу не видел

Добавлено через 4 минуты
Судя по всему, все-таки комоноид: http://tinyurl.com/monad-comonad
1
05.04.2012, 15:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2012, 15:38
Помогаю со студенческими работами здесь

В командной строке задается имя входного файла и целое число Н. Распечатать последние Н строк указанного файла
В командной строке задается имя входного файла и целое число Н. Распечатать последние Н строк...

Отделить путь и имя файла от аргументов в командной строке
Всем здравствуйте. Существует ли в VB.NET функция, выделяющая из командной строки с аргументами...

Ввести текст из файла, имя которого задано в командной строке, и вывести на экран
Ввести текст из файла, имя которого задано в командной строке и вывести на экран. Текст занимает...

Копирование файла, если имя старого и нового файлов передается в командной строке
..помогите. даже не знаю с чего начать...лаба по ос..работаем в putty..а задание такое.. операции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru