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

Как считать имена файлов из директории? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задачи с одномерным массивом http://www.cyberforum.ru/cpp-beginners/thread1009447.html
1)Заданы два одномерных упорядоченных массива a и b. Вывести на экран различные элементы массива a в порядке появления их в массиве b. #include <iostream> using namespace std; int main() { int const n=5; int i,k; int a, b;
C++ вывести массив без максимального и минимального числа я сделал программку которая ищет max min и разницу между ними, но потом нужно вывести тот самый массив только без max min #include <iostream> #include <conio.h> #include <iomanip> #include <time.h> #include <clocale> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread1009443.html
Почему не работает этот код? C++
Помогите разобраться с кодом, что в нем не так? Компиллируется, ввожу число, выводит на экран сообщение, что необходимо вывести предложения, содержащие заданное число строк и далее ничего не происходит и выйти из программы можно только путем ее закрытия. Очень долго разбираюсь, но безуспешно. Буду очень признателен. Ниже само задание и мой код. Если можно, то прокомментируйте ошибки подробно....
C++ Обработка exception
Возникла такая проблема и не могу понять как ее реализовать... cin >> totalitems; // вот здесь в случае ввода не цифр, выбить ошибку и повторить цикл, как реализовать? int TotalArrayItems() { int totalitems(0); do {
C++ Нужно исправит ошибку с массивом! http://www.cyberforum.ru/cpp-beginners/thread1009420.html
Почти решил задачу но вот эту ошибку никак не могу исправиьcannot convert from 'void' to 'double' #include "stdafx.h" #include <iostream> #include <fstream> #include <math.h> #include <iomanip> using namespace std; void read_matr(double Y) {
C++ Количество цифр между числами Собственно написал, код все работает, но мне нужно, чтобы после этой строчки cout << a++ << " "; курсор переключался на след. строчку endl или \n не подходит, ибо все числа тогда через строчку пишутся. #include <iostream> using namespace std; int main (int argc, char* argv) { int T, n, a, b, result; cin >> T; for (int i=0; i < T; T--) { подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
16.11.2013, 22:45  [ТС]     Как считать имена файлов из директории?
katsidelin, Ну я твой пример чуток переделал, у меня просто строки string с ними не работает, пришлось на wstring поменять, отак:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <windows.h>
#include <iostream>
#include <string>
 
using namespace std;
 
void main()
{
 
wstring Path = L"C:\\";       //  .
 
 
 
    WIN32_FIND_DATA FindFileData;
    HANDLE hf;
 
    hf=FindFirstFile(L"C:\\*", &FindFileData);
 
    //        .txt.
 
 
    if (hf!=INVALID_HANDLE_VALUE)
    {
        do
        {  
 
        Path  += FindFileData.cFileName;                        //   .
        wcout << L"Path file:  "<<Path.c_str()<<endl;             //  .
        wcout << L"Name file:  "<<FindFileData.cFileName<< endl;  //  .
/*      .   */       
        Path = L"C:\\";   // .
 
        cout<<endl;
        }
 
        while (FindNextFile(hf,&FindFileData)!=0);
 
 
        FindClose(hf);
    }
 
 cout <<"mu tyt"<<endl;
 
//system("pause");
}
 // [url]http://www.cyberforum.ru/visual-cpp/thread144752.html[/url]
А мб кто знает, что в настройках поменять что б string были как wstring ну или как то переводить из wstring в string. У меня в проекте кругом используется string, wstring я раз только использовал это при создании директории, ну и там при выборе случайного имени директории, ну я неудобно сделал в двух вариантах имя генерировал один в string, а другой в wstring, и тут же с имена файлов у меня похоже будут записаны в wstring, что бы перевести их в string походу наверно мне нужно их сохранить в файл, а затем считать уже файловым потоком для string, скорее всего я получу имена в string, но мб есть какой нить более лучший способ, мб нужно было изначально как то по другому проект строить???

Просветите новичка как правильно проект нужно было строить!!! Конечно сохранить строки wstring в файл, а затем считать в string мб тоже вариант, а если оно не правильно считает, я не пробовал, как вообще правильно нужно было делать???

Добавлено через 3 минуты
Я от помню что мне советовали в настройках поменять где то что то и тогда вроде как строки string станут wstring и проблем не будет, среда visual studio 2010!!!

Добавлено через 23 минуты
Ну от господа все таки подтвердилось, что бы получить из wstring string нужно просто записать в файл данные а уже оттуда их считать в string
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <windows.h>
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <cstdlib>
 
using namespace std;
 
void main()
{
 
wstring Path = L"C:\\";       //  .
 
 
 
    WIN32_FIND_DATA FindFileData;
    HANDLE hf;
 
    hf=FindFirstFile(L"C:\\*", &FindFileData);
 
    //        .txt.
 
    vector<string> v;
    if (hf!=INVALID_HANDLE_VALUE)
    {
        do
        {  
            wofstream wifs("temp.txt",wifstream::out);
        Path  += FindFileData.cFileName;                        //   .
        wcout << L"Path file:  "<<Path.c_str()<<endl;             //  .
        wcout << L"Name file:  "<<FindFileData.cFileName<< endl;  //  .
        wifs <<FindFileData.cFileName;
        wifs.close();
        ifstream ifs("temp.txt",ifstream::in);
        if(!ifs){cerr<<"don't open file"<<endl;exit(1);}
        string s="";
        ifs >>s;
        ifs.close();
        v.push_back(s);
/*      .   */       
        Path = L"C:\\";   // .
 
        cout<<endl;
        }
 
        while (FindNextFile(hf,&FindFileData)!=0);
 
 
        FindClose(hf);
    }
 
 cout <<"mu tyt"<<endl;
 cout <<"v.size()= "<<v.size()<<endl;
 for(int i=0;i<v.size();i++)
     cout <<v[i]<<endl;
//system("pause");
}
 // [url]http://www.cyberforum.ru/visual-cpp/thread144752.html[/url]
Это способ перевода из wstring в string ну и наверно наоборот. Да можно функции две создать string_to_wstring() и wstring_to_string() которые будут переводить одни строки в другие используя временный файл. В принципе для моего проекта этот вариант годиться. Но мб есть какое нить более лучшее "правильное" решение, чо то меня смущает что оно все так запутано получается и мой код как всегда получается такой что другой человек в нем не разберется, я сам в нем с трудом разбираюсь на следующий день, там 700 строк кода и я уже смотрю его тяжело читать, а если не знающий человек будет смотреть, то он фиг в нем разберется, не разобраться он то разберется только придется затратить день - три дня на разбор, а мб для кого то и больше, короче гамно код получается на С++, я щас код пхп на С++ переписываю, так код на пхп я писал полтора года назад и то в нем быстро разобрался наверно потому что язык высокоуровневый, а от на С++ все плохо получается.

А ForEveR что то советовал, там как то проект настроить для строк, я так и не понял.

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