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

Потоковый ввод/вывод - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Pinokio
2 / 2 / 0
Регистрация: 14.09.2012
Сообщений: 83
01.04.2013, 18:44     Потоковый ввод/вывод #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    FILE* in = fopen("xxx.txt", "rt");
    FILE* out = fopen("yyy.txt", "wt");
    if (!in)
        return 0;
    while(!feof(in))
        fputc(fgetc(in), out);
    fcloseall();
    return 0;
}
не видит функцию fcloseall() (использую mingw g++) пишет. 'fcloseall' was not declared in this scope
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 18:44     Потоковый ввод/вывод
Посмотрите здесь:

C++ потоковый ввод
потоковый ввод - вывод C++
C++ Потоковый ввод-вывод
C++ Потоковый ввод / вывод файлов
Потоковый ввод/вывод текста C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 19:06     Потоковый ввод/вывод #2
Цитата Сообщение от Pinokio Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    FILE* in = fopen("xxx.txt", "rt");
    FILE* out = fopen("yyy.txt", "wt");
    if (!in)
        return 0;
    while(!feof(in))
        fputc(fgetc(in), out);
    fcloseall();
    return 0;
}
не видит функцию fcloseall() (использую mingw g++) пишет. 'fcloseall' was not declared in this scope
скачай нормальный компилятор, и твои проблемы будут решены

Добавлено через 33 секунды
vs2010express отлично видит, запускает
Pinokio
2 / 2 / 0
Регистрация: 14.09.2012
Сообщений: 83
01.04.2013, 19:16  [ТС]     Потоковый ввод/вывод #3
Блин, а что с g++?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
01.04.2013, 21:14     Потоковый ввод/вывод #4
Цитата Сообщение от Pinokio Посмотреть сообщение
fcloseall()
по моему это не стандартная функция и работать она не должна(ну может)
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 21:22     Потоковый ввод/вывод #5
Цитата Сообщение от Van111 Посмотреть сообщение
по моему это не стандартная функция и работать она не должна(ну может)
ну у меня запустилось, возможно нестандартная функция, можно ведь её заменить...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2013, 21:58     Потоковый ввод/вывод #6
Цитата Сообщение от Friday Посмотреть сообщение
можно ведь её заменить...
C++
1
2
fclose(in);
fclose(out);
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 22:12     Потоковый ввод/вывод #7
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
fclose(in);
fclose(out);
по-моему ТС не этого хочет. Ему нужна функция, которая закрывает все за 1 раз...
ну допустим тут 100 файлов открыть нужно, неудобно будет их закрывать таким образом

З.Ы. ИМХО
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2013, 22:26     Потоковый ввод/вывод #8
Цитата Сообщение от Friday Посмотреть сообщение
по-моему ТС не этого хочет. Ему нужна функция, которая закрывает все за 1 раз...
Хотеть не вредно... Если компилятор не поддерживает?
Цитата Сообщение от Friday Посмотреть сообщение
ну допустим тут 100 файлов открыть нужно, неудобно будет их закрывать таким образом
C++
1
2
3
4
5
FILE* arr[100] = {in, out, ...};
...
for (int i = 0; i < 100; ++i)
      fclose(arr[i]);
...
Pinokio
2 / 2 / 0
Регистрация: 14.09.2012
Сообщений: 83
01.04.2013, 22:31  [ТС]     Потоковый ввод/вывод #9
Вообще должна поддерживаться и функция должна быть в stdio.h. этот пример был взят из книги. по идее она стандартная.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2013, 22:38     Потоковый ввод/вывод #10
Цитата Сообщение от Pinokio Посмотреть сообщение
по идее она стандартная.
Навряд ли...
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 22:40     Потоковый ввод/вывод #11
Цитата Сообщение от Pinokio Посмотреть сообщение
Вообще должна поддерживаться и функция должна быть в stdio.h. этот пример был взят из книги. по идее она стандартная.
не все книги следуют стандарту с++, в книгах часто бывают опечатки
Pinokio
2 / 2 / 0
Регистрация: 14.09.2012
Сообщений: 83
01.04.2013, 22:42  [ТС]     Потоковый ввод/вывод #12
http://msdn.microsoft.com/ru-ru/library/ms235374.aspx ну вот мсдн, позикс ее не рекоментдует, но и не запрещает
Friday
ну и долго меня небыло...
 Аватар для Friday
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
01.04.2013, 22:43     Потоковый ввод/вывод #13
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
FILE* arr[100] = {in, out, ...};
...
for (int i = 0; i < 100; ++i)
      fclose(arr[i]);
...
как вариант, но все же стандартной функции похоже нету
Pinokio
2 / 2 / 0
Регистрация: 14.09.2012
Сообщений: 83
01.04.2013, 22:43  [ТС]     Потоковый ввод/вывод #14
хм... а вот с _fcloseall() прога отработала. не понимаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2013, 23:28     Потоковый ввод/вывод
Еще ссылки по теме:

C++ потоковый ввод и вывод строки С++
Потоковый ввод-вывод. В уже созданном файле необходимо найти и заменить некоторую запись C++
C++ Потоковый ввод и ввод данных. Работа с числами

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
01.04.2013, 23:28     Потоковый ввод/вывод #15
Цитата Сообщение от Pinokio Посмотреть сообщение
хм... а вот с _fcloseall() прога отработала. не понимаю
Да ну чё непонятного?
C++
1
2
//stdio.h
_CRTIMP int __cdecl __MINGW_NOTHROW _fcloseall (void);
Вот и всё. То что в других местах называется fcloseall, в твоей и моей версии называется _fcloseall. Проверка:
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
#include<stdio.h>
#include<windows.h>
 
int main(void)
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
   FILE *fp1,*fp2;
   int streams_closed;
   /* открыть два потока */
   fp1 = fopen("DUMMY.ONE","w");
   fp2 = fopen("DUMMY.TWO","w");
   /* закрыть открытые потоки */
   streams_closed = _fcloseall();
   if(streams_closed == EOF)
      /* вывести сообщение об ошибке */
      perror(" Ошибка ");
   else
      /* вывести результат работы функции */
      printf("Было закрыто %d потока\n",streams_closed);
   getchar ();
   return 0;
}
Friday, и не фиг тут на компилятор гнать
Yandex
Объявления
01.04.2013, 23:28     Потоковый ввод/вывод
Ответ Создать тему
Опции темы

Текущее время: 15:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru