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

Открыть k файлов подряд - C++

Восстановить пароль Регистрация
 
Alex_oo7
 Аватар для Alex_oo7
48 / 59 / 4
Регистрация: 18.10.2010
Сообщений: 240
31.05.2012, 21:30     Открыть k файлов подряд #1
Рядом с .exe лежит папка test, а в папке той файлы вида i.in, где i - это число.
Вот нужно отрыть эти файлы и считать из них инфу, как считать я знаю, а вот как открыть не константный файл....

C++
1
2
3
4
5
6
7
for (int i = 1; i <= 40; i++) {     
   string s = "/test/" + i + ".in"; // не пашет
   freopen(s, "r", stdin); // не пашет
   int n = 0;
   cin >> n;
   /*итд*/
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 21:30     Открыть k файлов подряд
Посмотрите здесь:

C++ открыть N штук файлов
C++ Идущие подряд числа
C++ Количество условных операторов подряд
Несколько new [] подряд C++
C++ количество букв подряд
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JokerNN
132 / 128 / 36
Регистрация: 29.12.2011
Сообщений: 359
31.05.2012, 22:10     Открыть k файлов подряд #2
C++
1
2
3
char s[64];
sprintf(s, "/test/%d.in", i);
fopen(s, "w+");
формируй строку с именем файла вот таким образом - sprintf - функция из stdio.h
Alex_oo7
 Аватар для Alex_oo7
48 / 59 / 4
Регистрация: 18.10.2010
Сообщений: 240
31.05.2012, 22:27  [ТС]     Открыть k файлов подряд #3
JokerNN, а как мне закрыть его потом, что бы новый открыть, или это не надо ?
И как считывать с него intы ?
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
31.05.2012, 22:59     Открыть k файлов подряд #4
Цитата Сообщение от Alex_oo7 Посмотреть сообщение
freopen(s, "r", stdin); // не пашет
потому что надо s.c_str() подставлять.

Добавлено через 16 минут
как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <sstream>
#include <iostream>
#include <fstream>
using namespace std;
 
int main(){
 
ostringstream fileName;
ifstream file;
for (int i = 1; i <= 40; i++) {
  fileName << "/test/" << i << ".in";
  file.open(fileName.str().c_str());
  //читаем
  file.close(); //закрываем
  fileName.str(""); //чистим строку с именем
}
return 0;
}
Добавлено через 12 минут
Alex_oo7
 Аватар для Alex_oo7
48 / 59 / 4
Регистрация: 18.10.2010
Сообщений: 240
31.05.2012, 23:07  [ТС]     Открыть k файлов подряд #5
C++
1
2
3
4
5
6
7
8
9
char s[64];
sprintf(s, "/test/%d.in", 10);
int z = 0;
freopen (s, "r", stdin);    
cin >> z;
scanf ("%d", &z);
cin >> z;
cin >> z;
fclose(stdin);
Попробовал так считывать, но z всё время = 0
Хотя в файле:
Код
4
1 1
2 2
1 2
2 1
Yandex
Объявления
31.05.2012, 23:07     Открыть k файлов подряд
Ответ Создать тему
Опции темы

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