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

Опредилить, существует ли на диске необходимый файл (*.txt) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
10.01.2011, 18:00     Опредилить, существует ли на диске необходимый файл (*.txt) #1
Добрий день! Я новичок в с++ и в програмирование в целом. Подскажите , пожалуйста, можна в програме опредилить существует ли на диске необходимый файл (*.txt)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2011, 18:00     Опредилить, существует ли на диске необходимый файл (*.txt)
Посмотрите здесь:

C++ отладить программу на языке С++, которая считывает из файла a.txt строку и записывает её в файл b.txt в обратном порядке
C++ Написать программу, которая дописывает в файл Phone/txt, находящийся на диске А фамилию и номер телефона. Если файла на диске нет, то программа должна
C++ В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
C++ Прочитать txt и записать в другой txt файл
Исправить программу, чтоб считывала текст из файла Input.txt и выводит в файл Output.txt C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
10.01.2011, 18:16     Опредилить, существует ли на диске необходимый файл (*.txt) #2
C++
1
2
3
4
5
6
7
#include <io.h>
//.........................
    if ( _access( "path_to_file.ext", 0 ) != -1 ){
        std::cout << "Yep" << std::endl;
    } else {
        std::cout << "Nope" << std::endl;
    }
Добавлено через 3 минуты
Можно WinAPI использовать...
C++
1
2
3
bool fileExists( const char *name ){
    return GetFileAttributes( name ) != -1;
}
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
10.01.2011, 18:17     Опредилить, существует ли на диске необходимый файл (*.txt) #3
при открытии файла

C++
1
2
3
4
5
6
7
ifstream infile("D:\\F.txt"); //читаем из файла
    if(!infile)
    {
        cout<<"Error! Not fail!!!";
        getch();
        exit(1);
    }
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
10.01.2011, 19:51  [ТС]     Опредилить, существует ли на диске необходимый файл (*.txt) #4
Cпасибо,но при таком коде
C++
1
2
3
4
5
6
7
8
9
cout<<"ведите название диска"<<"\n";
cin>>G;
strcat(G,":\\kp.txt");
 
if ( _access( "G", 0 ) != -1 ){ 
cout << "Yep" << endl; 
} else { 
cout << "Nope" << endl; 
}
всегда выводит Уер и продолжает работу ибо с существующим файлом ибо , видимо, с созданым,но пустым.
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
10.01.2011, 20:03     Опредилить, существует ли на диске необходимый файл (*.txt) #5
Цитата Сообщение от Эжен Посмотреть сообщение
Cпасибо,но при таком коде
cout<<"ведите название диска"<<"\n";
cin>>G;
strcat(G,":\\kp.txt");

if ( _access( "G", 0 ) != -1 ){
cout << "Yep" << endl;
} else {
cout << "Nope" << endl;
}
всегда выводит Уер и продолжает работу ибо с существующим файлом ибо , видимо, с созданым,но пустым.
_access( "G", 0 ) заменить на _access( G, 0 )
и разделитель директорий не виндовый, а никсовый( / )

C++
1
2
3
4
5
6
7
8
    std::cout<<"ведите название диска"<<"\n";
    std::cin>>G;
    strcat(G,":/kp.txt");
    if ( _access( G, 0 ) != -1 ){ 
        std::cout << "Yep" << std::endl; 
    } else { 
        std::cout << "Nope" << std::endl; 
    }
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
10.01.2011, 21:56  [ТС]     Опредилить, существует ли на диске необходимый файл (*.txt) #6
работает как надо!!!спасибо!

Добавлено через 1 час 8 минут
возник еще один вопрос: если есть файл вида
а1 а2 а3 а4 ...
в1 в2 в3 в4 ...
как записать первую строчку в один масив,а вторую-во второй, ели количество елементов ни в строчке ни в файле на перед не известно?
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
11.01.2011, 10:16     Опредилить, существует ли на диске необходимый файл (*.txt) #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool isFileExists( const char *name ){
    return _access( name, 0 ) != -1;
}
 
int main(int argc, char *argv[]){
    const char f_name[] = { "./test.txt" };
    std::vector<std::string> data;
    std::string buf = "";
    if ( isFileExists( f_name ) ){
        std::ifstream file( f_name, std::ios_base::in );
        if ( file.is_open() ){
            while ( std::getline( file, buf, '\n' ) ){
                data.push_back( buf );
            }
        }
        file.close();
    }
    return 0;
}
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
11.01.2011, 19:23  [ТС]     Опредилить, существует ли на диске необходимый файл (*.txt) #8
ойойой! а можно так чтоб не вся строчка записывалась целиком, а по елементно в соответствующий елемент масива?
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
11.01.2011, 21:02     Опредилить, существует ли на диске необходимый файл (*.txt) #9
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
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <fstream>
#include <io.h>
 
bool isFileExists( const char *name ){
    return _access( name, 0 ) != -1;
}
 
int main(int argc, char *argv[]){
    const char f_name[] = { "./test.txt" };
    std::vector<std::vector<std::string>> data;
    std::string buf = "";
    int c = 0;
    if ( isFileExists( f_name ) ){
        std::ifstream file( f_name, std::ios_base::in );
        if ( file.is_open() ){
            while ( std::getline( file, buf, '\n' ) ){
                std::istringstream iss( buf );
                data.resize( c + 1 );
                do {
                    std::string tmp;
                    iss >> tmp;
                    if ( !tmp.empty() )
                        data[c].push_back( tmp );
                } while( iss );
                c++;
            }
        }
        file.close();
    }
    return 0;
}
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
11.01.2011, 23:55  [ТС]     Опредилить, существует ли на диске необходимый файл (*.txt) #10
Я очень благодарна за помощь, надеюсь последний вопрос
error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
с чем может быть связана эта ошибка?
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
12.01.2011, 09:45     Опредилить, существует ли на диске необходимый файл (*.txt) #11
Цитата Сообщение от Эжен Посмотреть сообщение
Я очень благодарна за помощь, надеюсь последний вопрос
error C2039: 'push_back' : is not a member of 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
с чем может быть связана эта ошибка?
в каком коде возникает такая ошибка?
Эжен
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 7
12.01.2011, 19:56  [ТС]     Опредилить, существует ли на диске необходимый файл (*.txt) #12
if ( !tmp.empty() )
data[c].push_back( tmp );
возможно будет использовать считаные елементи для вычесления других переменых (соглосовать или привести к double)?
reich
 Аватар для reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
13.01.2011, 10:21     Опредилить, существует ли на диске необходимый файл (*.txt) #13
Цитата Сообщение от Эжен Посмотреть сообщение
if ( !tmp.empty() )
data[c].push_back( tmp );
возможно будет использовать считаные елементи для вычесления других переменых (соглосовать или привести к double)?
1. Ошибка связана с компилятором.
2. Возможно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2012, 21:12     Опредилить, существует ли на диске необходимый файл (*.txt)
Еще ссылки по теме:

C++ Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии
C++ Найти минимальное и максимальное числа из input.txt и записать его в файл output.txt
C++ Считать 10 целых чисел с файла 1.txt и записать в файл 2.txt максимальный элемент и его индекс

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

Или воспользуйтесь поиском по форуму:
Exxplozer
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 17
18.05.2012, 21:12     Опредилить, существует ли на диске необходимый файл (*.txt) #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
char f[100];
FILE *fptr=fopen(f,"rt");
 
if(fptr==NULL)
{
cout<<"File not found\n"<<endl;
exit(1);
}
 
fclose(fptr);
return 0;
}
Yandex
Объявления
18.05.2012, 21:12     Опредилить, существует ли на диске необходимый файл (*.txt)
Ответ Создать тему
Опции темы

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